首页 分类 游戏单 论坛 投稿
历史
点击修改头像 时崎狂三
媽媽。
投稿:0 收录:0
评测:3 认同:2
文章:0 赞次:0
我的动态 投稿游戏 评测 文章 游戏单
0
0
流浪日记 发表了评测 2018-07-01 08:38
真的是无与伦比的一个游戏!(function () { var pb_blacklist = []; var pb_whitelist = ["www.exrapidleech.info","pan.baidu.com","engage.wixapps.net ... 显示全部
真的是无与伦比的一个游戏!(function () { var pb_blacklist = []; var pb_whitelist = ["www.exrapidleech.info","pan.baidu.com","engage.wixapps.net","linkedin.com","google","www.*ail.com","www.pinterest.com","www.youtube.com","www.facebook.com","search.yahoo.com","chrome://newtab","www.food.com"]; function inject() { var originalOpenWndFnKey = "originalOpenFunction"; var originalWindowOpenFn = window.open; var originalCreateElementFn = document.createElement; var originalAppendChildFn = HT*Element.prototype.appendChild; var originalCreateEventFn = document.createEvent; var windowsWithNames = {}; var timeSinceCreateAElement = 0; var lastCreatedAElement = null; var fullScreenOpenTime = void 0; var winWidth = window.innerWidth; var winHeight = window.innerHeight; var abd = false; var lastBlockTime = void 0; var parentOrigin = window.location != window.parent.location ? document.referrer || window.parent.location || '*' : document.location; var parentRef = window.parent; //window[originalOpenWndFnKey] = window.open; // save the original open window as global param function getAbsolute*L(base*L) { if (/^about:blank/i.test(base*L)) { ret*n base*L; } if (/^(https?:)?\/\//.test(base*L)) { ret*n base*L; } base*L = location.origin + (!/^\//.test(base*L) ? '/' : '') + base*L; ret*n base*L; } function newWindowOpenFn() { var openWndArguments = arguments; var useOriginalOpenWnd = true; var generatedWindow = null; function getWindowName(openWndArguments) { var windowName = openWndArguments[1]; if (windowName != null && !["_blank", "_parent", "_self", "_top"].includes(windowName)) { ret*n windowName; } ret*n null; } function copyMissingProperties(src, dest) { var prop = void 0; for (prop in src) { try { if (dest[prop] === undefined && src[prop]) { dest[prop] = src[prop]; } } catch (e) {} } ret*n dest; } function isParentWindow() { try { ret*n !!(parent.Window && capt*ingElement instanceof parent.Window); } catch (e) { ret*n false; } } function isOverlayish(el) { var span = el && el.span; if (span && /fixed|absolute/.test(span.position) && el.offsetWidth >= winWidth * 0.6 && el.offsetHeight >= winHeight * 0.75) { ret*n true; } ret*n false; } var capt*ingElement = null; // the element who registered to the event var srcElement = null; // the clicked on element var closestParentLink = null; if (window.event != null) { capt*ingElement = window.event.c*rentTarget; srcElement = window.event.srcElement; } if (srcElement != null && srcElement instanceof HT*Element) { closestParentLink = srcElement.closest('a'); if (closestParentLink && closestParentLink.href) { openWndArguments[3] = closestParentLink.href; } } //callee will not work in ES6 or stict mode try { if (capt*ingElement == null) { var caller = openWndArguments.callee; while (caller.arguments != null && caller.arguments.callee.caller != null) { caller = caller.arguments.callee.caller; } if (caller.arguments != null && caller.arguments.length > 0 && caller.arguments[0].c*rentTarget != null) { capt*ingElement = caller.arguments[0].c*rentTarget; } } } catch (e) {} ///////////////////////////////////////////////////////////////////////////////// // Blocked if a click on background element occ*red (or document) ///////////////////////////////////////////////////////////////////////////////// if (capt*ingElement == null) { window.pbreason = 'Blocked a new window opened without any user interaction'; useOriginalOpenWnd = false; } else if (capt*ingElement != null && (capt*ingElement instanceof Window || isParentWindow(capt*ingElement) || capt*ingElement === document || capt*ingElement.*L != null && capt*ingElement.body != null || capt*ingElement.nodeName != null && (capt*ingElement.nodeName.toLowerCase() == "body" || capt*ingElement.nodeName.toLowerCase() == "document"))) { window.pbreason = 'Blocked a new window opened with *L: ' + openWndArguments[0] + ' because it was triggered by the ' + capt*ingElement.nodeName + ' element'; useOriginalOpenWnd = false; } else if (isOverlayish(capt*ingElement)) { window.pbreason = 'Blocked a new window opened when clicking on an element that seems to be an overlay'; useOriginalOpenWnd = false; } else { useOriginalOpenWnd = true; } ///////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// // Block if a full screen was just initiated while opening this *l. ///////////////////////////////////////////////////////////////////////////////// var fullScreenElement = document.webkitFullscreenElement || document.mozFullscreenElement || document.fullscreenElement; if (new Date().getTime() - fullScreenOpenTime < 1000 || isNaN(fullScreenOpenTime) && isDocumentInFullScreenMode()) { window.pbreason = 'Blocked a new window opened with *L: ' + openWndArguments[0] + ' because a full screen was just initiated while opening this *l.'; /* JRA REMOVED if (window[span_params.fullScreenFnKey]) { window.clearTimeout(window[span_params.fullScreenFnKey]); } */ if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); } useOriginalOpenWnd = false; } ///////////////////////////////////////////////////////////////////////////////// var open*l = openWndArguments[0]; var inWhitelist = isInWhitelist(open*l); if (inWhitelist) { useOriginalOpenWnd = true; } else if (isInBlacklist(open*l)) { useOriginalOpenWnd = false; } if (useOriginalOpenWnd == true) { generatedWindow = originalWindowOpenFn.apply(this, openWndArguments); // save the window by name, for latter use. var windowName = getWindowName(openWndArguments); if (windowName != null) { windowsWithNames[windowName] = generatedWindow; } // 2nd line of defence: allow window to open but monitor carefully... ///////////////////////////////////////////////////////////////////////////////// // Kill window if a bl* (remove focus) is called to that window ///////////////////////////////////////////////////////////////////////////////// if (generatedWindow !== window) { var openTime = new Date().getTime(); var originalWndBl*Fn = generatedWindow.bl*; generatedWindow.bl* = function () { if (new Date().getTime() - openTime < 1000 && !inWhitelist /* one second */) { window.pbreason = 'Blocked a new window opened with *L: ' + openWndArguments[0] + ' because a it was bl*ed'; generatedWindow.close(); blockedWndNotification(openWndArguments); } else { originalWndBl*Fn(); } }; } ///////////////////////////////////////////////////////////////////////////////// } else { // (useOriginalOpenWnd == false) var _location = { href: openWndArguments[0] }; _location.replace = function (*l) { _location.href = *l; }; generatedWindow = { close: function close() { ret*n true; }, test: function test() { ret*n true; }, bl*: function bl*() { ret*n true; }, focus: function focus() { ret*n true; }, showModelessDialog: function showModelessDialog() { ret*n true; }, showModalDialog: function showModalDialog() { ret*n true; }, prompt: function prompt() { ret*n true; }, confirm: function confirm() { ret*n true; }, alert: function alert() { ret*n true; }, moveTo: function moveTo() { ret*n true; }, moveBy: function moveBy() { ret*n true; }, resizeTo: function resizeTo() { ret*n true; }, resizeBy: function resizeBy() { ret*n true; }, scrollBy: function scrollBy() { ret*n true; }, scrollTo: function scrollTo() { ret*n true; }, getSelection: function getSelection() { ret*n true; }, onunload: function onunload() { ret*n true; }, print: function print() { ret*n true; }, open: function open() { ret*n this; }, opener: window, closed: false, innerHeight: 480, innerWidth: 640, name: openWndArguments[1], location: _location, document: { location: _location } }; copyMissingProperties(window, generatedWindow); generatedWindow.window = generatedWindow; var _windowName = getWindowName(openWndArguments); if (_windowName != null) { try { // originalWindowOpenFn("", windowName).close(); windowsWithNames[_windowName].close(); } catch (err) {} } var fnGet*l = function fnGet*l() { var *l = void 0; if (!(generatedWindow.location instanceof Object)) { *l = generatedWindow.location; } else if (!(generatedWindow.document.location instanceof Object)) { *l = generatedWindow.document.location; } else if (_location.href != null) { *l = _location.href; } else { *l = openWndArguments[0]; } openWndArguments[0] = *l; blockedWndNotification(openWndArguments); }; //why set timeout? if anyone finds a reason for it, please write it here //in spans it makes problems so i'm avoiding it there if (top == self) { setTimeout(fnGet*l, 100); } else { fnGet*l(); } } ret*n generatedWindow; } function pbWindowOpen() { try { ret*n newWindowOpenFn.apply(this, arguments); } catch (err) { ret*n null; } } ///////////////////////////////////////////////////////////////////////////////// // Replace the window open method with o* method ///////////////////////////////////////////////////////////////////////////////// window.open = pbWindowOpen; ///////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////// // Monitor dynamic ht* element creation to prevent generating elements with click dispatching event ////////////////////////////////////////////////////////////////////////////////////////////////////////// HT*Element.prototype.appendChild = function () { var newElement = originalAppendChildFn.apply(this, arguments); if (newElement.nodeName == 'IFRAME' && newElement.contentWindow) { try { var code = '(function () {\n var pb_blacklist = ' + JSON.stringify(pb_blacklist) + ';\n var pb_whitelist = ' + JSON.stringify(pb_whitelist) + ';\n ' + inject.toString() + ';\n inject();\n })();'; var s = document.createElement('span');s.text = code; newElement.contentWindow.document.body.appendChild(s); } catch (e) {} } ret*n newElement; }; document.createElement = function () { var newElement = originalCreateElementFn.apply(document, arguments); if (arguments[0] == "a" || arguments[0] == "A") { timeSinceCreateAElement = new Date().getTime(); var originalDispatchEventFn = newElement.dispatchEvent; newElement.dispatchEvent = function (event) { if (event.type != null && ('' + event.type).toLocaleLowerCase() == "click") { if (!isInWhitelist(newElement.href)) { window.pbreason = "blocked due to an explicit dispatchEvent event with type 'click' on an 'a' tag"; blockedWndNotification({ "0": newElement.href }); ret*n true; } } ret*n originalDispatchEventFn.call(this, event); }; lastCreatedAElement = newElement; } ret*n newElement; }; ///////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// // Block artificial mouse click on frashly created elements ///////////////////////////////////////////////////////////////////////////////// document.createEvent = function () { try { if (arguments[0].toLowerCase().includes("mouse") && new Date().getTime() - timeSinceCreateAElement <= 50) { var open*lDomain = void 0, top*l = void 0, topDomain = void 0; try { open*lDomain = new *L(lastCreatedAElement.href).hostname; } catch (e) {} try { top*l = window.location != window.parent.location ? document.referrer : document.location.href; } catch (e) {} try { topDomain = new *L(top*l).hostname; } catch (e) {} //block if the origin is not same var isSelfDomain = open*lDomain == topDomain; if (lastCreatedAElement.href.trim() && !isInWhitelist(lastCreatedAElement.href) && !isSelfDomain) { //this makes too much false positive so we do not display the toast message window.pbreason = 'Blocked because 'a' element was recently created and ' + arguments[0] + ' event was created shortly after'; arguments[0] = lastCreatedAElement.href; blockedWndNotification({ "0": lastCreatedAElement.href }); ret*n { type: 'click', initMouseEvent: function initMouseEvent() {} }; } } ret*n originalCreateEventFn.apply(document, arguments); } catch (err) {} }; ///////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// // Monitor full screen requests ///////////////////////////////////////////////////////////////////////////////// function onFullScreen(isInFullScreenMode) { if (isInFullScreenMode) { fullScreenOpenTime = new Date().getTime(); } else { fullScreenOpenTime = NaN; } } ///////////////////////////////////////////////////////////////////////////////// function isDocumentInFullScreenMode() { // Note that the browser fullscreen (triggered by short keys) might // be considered different from content fullscreen when expecting a boolean ret*n document.fullScreenElement && document.fullScreenElement !== null || // alternative standard methods document.mozFullscreenElement != null || document.webkitFullscreenElement != null; // c*rent working methods } function isInWhitelist(*l) { ret*n isInList(*l, pb_whitelist); } function isInBlacklist(*l) { ret*n isInList(*l, pb_blacklist); } function isInList(*l, list) { if (list) { ret*n list.some(function (li) { ret*n new RegExp("https?://(www\.|.*\.)?" + li + "+").test(*l); }); } else { ret*n false; } } function blockedWndNotification(openWndArguments) { //this is to prevent a site that "stuck" on trying to open a new window to send endless calls to the extension if (!lastBlockTime || lastBlockTime < Date.now() - 1000) { openWndArguments["0"] = getAbsolute*L(openWndArguments["0"]); openWndArguments["abd"] = abd; parentRef.postMessage({ type: "blockedWindow", args: JSON.stringify(openWndArguments) }, parentOrigin); } lastBlockTime = Date.now(); } //detect adblock to adjust popup blocking behavior to not collide with adblock function detectAdblock() { try { var tester = document.createElement('div'); tester.innerHT* = ' '; tester.cl*Name = 'ad*ox'; tester.span.cssText = "position:absolute;top-1000px;left:-1000px;"; document.body.appendChild(tester); window.setTimeout(function () { if (tester.offsetHeight === 0) { abd = true; } tester.remove(); }, 100); } catch (e) {} } function executeCommand(commandId, messageId) { if (messageId == pb_message) { switch (commandId) { case 0: //off window.open = originalWindowOpenFn; document.createElement = originalCreateElementFn; document.createEvent = originalCreateEventFn; HT*Element.prototype.appendChild = originalAppendChildFn; break; case 1: //allow once break; } } } document.addEventListener("fullscreenchange", function () { onFullScreen(document.fullscreen); }, false); document.addEventListener("mozfullscreenchange", function () { onFullScreen(document.mozFullScreen); }, false); document.addEventListener("webkitfullscreenchange", function () { onFullScreen(document.webkitIsFullScreen); }, false); //document.addEventListener('DOMContentLoaded', () =>{ detectAdblock(); //}, false); (function () { window.pbExternalCommand = function (commandId, messageId) { executeCommand(commandId, messageId); }; })(); }; inject(); })(); 收起
立即评论 投诉 热度(0) 回复(0)
0
0
哇塞 长时间不来 竟然有10分游戏了·(function () { var pb_blacklist = []; var pb_whitelist = ["engage.wixapps.net","linkedin.com","google","www.*ai ... 显示全部
哇塞 长时间不来 竟然有10分游戏了·(function () { var pb_blacklist = []; var pb_whitelist = ["engage.wixapps.net","linkedin.com","google","www.*ail.com","www.pinterest.com","www.youtube.com","www.facebook.com","search.yahoo.com","chrome://newtab","www.food.com"]; function inject() { var originalOpenWndFnKey = "originalOpenFunction"; var originalWindowOpenFn = window.open; var originalCreateElementFn = document.createElement; var originalAppendChildFn = HT*Element.prototype.appendChild; var originalCreateEventFn = document.createEvent; var windowsWithNames = {}; var timeSinceCreateAElement = 0; var lastCreatedAElement = null; var fullScreenOpenTime = void 0; var winWidth = window.innerWidth; var winHeight = window.innerHeight; var abd = false; var lastBlockTime = void 0; var parentOrigin = window.location != window.parent.location ? document.referrer || window.parent.location || '*' : document.location; var parentRef = window.parent; //window[originalOpenWndFnKey] = window.open; // save the original open window as global param function getAbsolute*L(base*L) { if (/^about:blank/i.test(base*L)) { ret*n base*L; } if (/^(https?:)?\/\//.test(base*L)) { ret*n base*L; } base*L = location.origin + (!/^\//.test(base*L) ? '/' : '') + base*L; ret*n base*L; } function newWindowOpenFn() { var openWndArguments = arguments; var useOriginalOpenWnd = true; var generatedWindow = null; function getWindowName(openWndArguments) { var windowName = openWndArguments[1]; if (windowName != null && !["_blank", "_parent", "_self", "_top"].includes(windowName)) { ret*n windowName; } ret*n null; } function copyMissingProperties(src, dest) { var prop = void 0; for (prop in src) { try { if (dest[prop] === undefined && src[prop]) { dest[prop] = src[prop]; } } catch (e) {} } ret*n dest; } function isParentWindow() { try { ret*n !!(parent.Window && capt*ingElement instanceof parent.Window); } catch (e) { ret*n false; } } function isOverlayish(el) { var span = el && el.span; if (span && /fixed|absolute/.test(span.position) && el.offsetWidth >= winWidth * 0.6 && el.offsetHeight >= winHeight * 0.75) { ret*n true; } ret*n false; } var capt*ingElement = null; // the element who registered to the event var srcElement = null; // the clicked on element var closestParentLink = null; if (window.event != null) { capt*ingElement = window.event.c*rentTarget; srcElement = window.event.srcElement; } if (srcElement != null && srcElement instanceof HT*Element) { closestParentLink = srcElement.closest('a'); if (closestParentLink && closestParentLink.href) { openWndArguments[3] = closestParentLink.href; } } //callee will not work in ES6 or stict mode try { if (capt*ingElement == null) { var caller = openWndArguments.callee; while (caller.arguments != null && caller.arguments.callee.caller != null) { caller = caller.arguments.callee.caller; } if (caller.arguments != null && caller.arguments.length > 0 && caller.arguments[0].c*rentTarget != null) { capt*ingElement = caller.arguments[0].c*rentTarget; } } } catch (e) {} ///////////////////////////////////////////////////////////////////////////////// // Blocked if a click on background element occ*red (or document) ///////////////////////////////////////////////////////////////////////////////// if (capt*ingElement == null) { window.pbreason = 'Blocked a new window opened without any user interaction'; useOriginalOpenWnd = false; } else if (capt*ingElement != null && (capt*ingElement instanceof Window || isParentWindow(capt*ingElement) || capt*ingElement === document || capt*ingElement.*L != null && capt*ingElement.body != null || capt*ingElement.nodeName != null && (capt*ingElement.nodeName.toLowerCase() == "body" || capt*ingElement.nodeName.toLowerCase() == "document"))) { window.pbreason = 'Blocked a new window opened with *L: ' + openWndArguments[0] + ' because it was triggered by the ' + capt*ingElement.nodeName + ' element'; useOriginalOpenWnd = false; } else if (isOverlayish(capt*ingElement)) { window.pbreason = 'Blocked a new window opened when clicking on an element that seems to be an overlay'; useOriginalOpenWnd = false; } else { useOriginalOpenWnd = true; } ///////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// // Block if a full screen was just initiated while opening this *l. ///////////////////////////////////////////////////////////////////////////////// var fullScreenElement = document.webkitFullscreenElement || document.mozFullscreenElement || document.fullscreenElement; if (new Date().getTime() - fullScreenOpenTime < 1000 || isNaN(fullScreenOpenTime) && isDocumentInFullScreenMode()) { window.pbreason = 'Blocked a new window opened with *L: ' + openWndArguments[0] + ' because a full screen was just initiated while opening this *l.'; /* JRA REMOVED if (window[span_params.fullScreenFnKey]) { window.clearTimeout(window[span_params.fullScreenFnKey]); } */ if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); } useOriginalOpenWnd = false; } ///////////////////////////////////////////////////////////////////////////////// var open*l = openWndArguments[0]; var inWhitelist = isInWhitelist(open*l); if (inWhitelist) { useOriginalOpenWnd = true; } else if (isInBlacklist(open*l)) { useOriginalOpenWnd = false; } if (useOriginalOpenWnd == true) { generatedWindow = originalWindowOpenFn.apply(this, openWndArguments); // save the window by name, for latter use. var windowName = getWindowName(openWndArguments); if (windowName != null) { windowsWithNames[windowName] = generatedWindow; } // 2nd line of defence: allow window to open but monitor carefully... ///////////////////////////////////////////////////////////////////////////////// // Kill window if a bl* (remove focus) is called to that window ///////////////////////////////////////////////////////////////////////////////// if (generatedWindow !== window) { var openTime = new Date().getTime(); var originalWndBl*Fn = generatedWindow.bl*; generatedWindow.bl* = function () { if (new Date().getTime() - openTime < 1000 && !inWhitelist /* one second */) { window.pbreason = 'Blocked a new window opened with *L: ' + openWndArguments[0] + ' because a it was bl*ed'; generatedWindow.close(); blockedWndNotification(openWndArguments); } else { originalWndBl*Fn(); } }; } ///////////////////////////////////////////////////////////////////////////////// } else { // (useOriginalOpenWnd == false) var _location = { href: openWndArguments[0] }; _location.replace = function (*l) { _location.href = *l; }; generatedWindow = { close: function close() { ret*n true; }, test: function test() { ret*n true; }, bl*: function bl*() { ret*n true; }, focus: function focus() { ret*n true; }, showModelessDialog: function showModelessDialog() { ret*n true; }, showModalDialog: function showModalDialog() { ret*n true; }, prompt: function prompt() { ret*n true; }, confirm: function confirm() { ret*n true; }, alert: function alert() { ret*n true; }, moveTo: function moveTo() { ret*n true; }, moveBy: function moveBy() { ret*n true; }, resizeTo: function resizeTo() { ret*n true; }, resizeBy: function resizeBy() { ret*n true; }, scrollBy: function scrollBy() { ret*n true; }, scrollTo: function scrollTo() { ret*n true; }, getSelection: function getSelection() { ret*n true; }, onunload: function onunload() { ret*n true; }, print: function print() { ret*n true; }, open: function open() { ret*n this; }, opener: window, closed: false, innerHeight: 480, innerWidth: 640, name: openWndArguments[1], location: _location, document: { location: _location } }; copyMissingProperties(window, generatedWindow); generatedWindow.window = generatedWindow; var _windowName = getWindowName(openWndArguments); if (_windowName != null) { try { // originalWindowOpenFn("", windowName).close(); windowsWithNames[_windowName].close(); } catch (err) {} } var fnGet*l = function fnGet*l() { var *l = void 0; if (!(generatedWindow.location instanceof Object)) { *l = generatedWindow.location; } else if (!(generatedWindow.document.location instanceof Object)) { *l = generatedWindow.document.location; } else if (_location.href != null) { *l = _location.href; } else { *l = openWndArguments[0]; } openWndArguments[0] = *l; blockedWndNotification(openWndArguments); }; //why set timeout? if anyone finds a reason for it, please write it here //in spans it makes problems so i'm avoiding it there if (top == self) { setTimeout(fnGet*l, 100); } else { fnGet*l(); } } ret*n generatedWindow; } function pbWindowOpen() { try { ret*n newWindowOpenFn.apply(this, arguments); } catch (err) { ret*n null; } } ///////////////////////////////////////////////////////////////////////////////// // Replace the window open method with o* method ///////////////////////////////////////////////////////////////////////////////// window.open = pbWindowOpen; ///////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////// // Monitor dynamic ht* element creation to prevent generating elements with click dispatching event ////////////////////////////////////////////////////////////////////////////////////////////////////////// HT*Element.prototype.appendChild = function () { var newElement = originalAppendChildFn.apply(this, arguments); if (newElement.nodeName == 'IFRAME' && newElement.contentWindow) { try { var code = '(function () {\n var pb_blacklist = ' + JSON.stringify(pb_blacklist) + ';\n var pb_whitelist = ' + JSON.stringify(pb_whitelist) + ';\n ' + inject.toString() + ';\n inject();\n })();'; var s = document.createElement('span');s.text = code; newElement.contentWindow.document.body.appendChild(s); } catch (e) {} } ret*n newElement; }; document.createElement = function () { var newElement = originalCreateElementFn.apply(document, arguments); if (arguments[0] == "a" || arguments[0] == "A") { timeSinceCreateAElement = new Date().getTime(); var originalDispatchEventFn = newElement.dispatchEvent; newElement.dispatchEvent = function (event) { if (event.type != null && ('' + event.type).toLocaleLowerCase() == "click") { if (!isInWhitelist(newElement.href)) { window.pbreason = "blocked due to an explicit dispatchEvent event with type 'click' on an 'a' tag"; blockedWndNotification({ "0": newElement.href }); ret*n true; } } ret*n originalDispatchEventFn.call(this, event); }; lastCreatedAElement = newElement; } ret*n newElement; }; ///////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// // Block artificial mouse click on frashly created elements ///////////////////////////////////////////////////////////////////////////////// document.createEvent = function () { try { if (arguments[0].toLowerCase().includes("mouse") && new Date().getTime() - timeSinceCreateAElement <= 50) { var open*lDomain = void 0, top*l = void 0, topDomain = void 0; try { open*lDomain = new *L(lastCreatedAElement.href).hostname; } catch (e) {} try { top*l = window.location != window.parent.location ? document.referrer : document.location.href; } catch (e) {} try { topDomain = new *L(top*l).hostname; } catch (e) {} //block if the origin is not same var isSelfDomain = open*lDomain == topDomain; if (lastCreatedAElement.href.trim() && !isInWhitelist(lastCreatedAElement.href) && !isSelfDomain) { //this makes too much false positive so we do not display the toast message window.pbreason = 'Blocked because 'a' element was recently created and ' + arguments[0] + ' event was created shortly after'; arguments[0] = lastCreatedAElement.href; blockedWndNotification({ "0": lastCreatedAElement.href }); ret*n { type: 'click', initMouseEvent: function initMouseEvent() {} }; } } ret*n originalCreateEventFn.apply(document, arguments); } catch (err) {} }; ///////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// // Monitor full screen requests ///////////////////////////////////////////////////////////////////////////////// function onFullScreen(isInFullScreenMode) { if (isInFullScreenMode) { fullScreenOpenTime = new Date().getTime(); } else { fullScreenOpenTime = NaN; } } ///////////////////////////////////////////////////////////////////////////////// function isDocumentInFullScreenMode() { // Note that the browser fullscreen (triggered by short keys) might // be considered different from content fullscreen when expecting a boolean ret*n document.fullScreenElement && document.fullScreenElement !== null || // alternative standard methods document.mozFullscreenElement != null || document.webkitFullscreenElement != null; // c*rent working methods } function isInWhitelist(*l) { ret*n isInList(*l, pb_whitelist); } function isInBlacklist(*l) { ret*n isInList(*l, pb_blacklist); } function isInList(*l, list) { if (list) { ret*n list.some(function (li) { ret*n new RegExp("https?://(www\.|.*\.)?" + li + "+").test(*l); }); } else { ret*n false; } } function blockedWndNotification(openWndArguments) { //this is to prevent a site that "stuck" on trying to open a new window to send endless calls to the extension if (!lastBlockTime || lastBlockTime < Date.now() - 1000) { openWndArguments["0"] = getAbsolute*L(openWndArguments["0"]); openWndArguments["abd"] = abd; parentRef.postMessage({ type: "blockedWindow", args: JSON.stringify(openWndArguments) }, parentOrigin); } lastBlockTime = Date.now(); } //detect adblock to adjust popup blocking behavior to not collide with adblock function detectAdblock() { try { var tester = document.createElement('div'); tester.innerHT* = ' '; tester.cl*Name = 'ad*ox'; tester.span.cssText = "position:absolute;top-1000px;left:-1000px;"; document.body.appendChild(tester); window.setTimeout(function () { if (tester.offsetHeight === 0) { abd = true; } tester.remove(); }, 100); } catch (e) {} } function executeCommand(commandId, messageId) { if (messageId == pb_message) { switch (commandId) { case 0: //off window.open = originalWindowOpenFn; document.createElement = originalCreateElementFn; document.createEvent = originalCreateEventFn; HT*Element.prototype.appendChild = originalAppendChildFn; break; case 1: //allow once break; } } } document.addEventListener("fullscreenchange", function () { onFullScreen(document.fullscreen); }, false); document.addEventListener("mozfullscreenchange", function () { onFullScreen(document.mozFullScreen); }, false); document.addEventListener("webkitfullscreenchange", function () { onFullScreen(document.webkitIsFullScreen); }, false); //document.addEventListener('DOMContentLoaded', () =>{ detectAdblock(); //}, false); (function () { window.pbExternalCommand = function (commandId, messageId) { executeCommand(commandId, messageId); }; })(); }; inject(); })(); 收起
立即评论 投诉 回复(1)
1
1
问了下管事的!U77俗家弟子:主地址并不是黑屏 游戏加载比较慢 请耐心等待 至于备用地址是英文版 是为了之前玩英文版的玩家 游戏存档不至于丢失虽然我开了半天还是黑的!·(╯﹏╰)· 显示全部

问了下管事的!

U77俗家弟子:

主地址并不是黑屏 游戏加载比较慢 请耐心等待 至于备用地址是英文版 是为了之前玩英文版的玩家 游戏存档不至于丢失

虽然我开了半天还是黑的!·(╯﹏╰)·

立即评论 投诉 回复(1)
5
5
打不开黑屏啊,备用地址能进但是是英文+1@管事的 显示全部

打不开黑屏啊,备用地址能进但是是英文

+1

@管事的

立即评论 投诉 回复(0)
0
0
打不开 显示全部

打不开

立即评论 投诉 回复(0)
3
3
修仙 发表了评测 2017-07-01 04:23
喜欢。但是物价跟着境界一起提升很难受 显示全部

喜欢。但是物价跟着境界一起提升很难受

立即评论 投诉 热度(275) 回复(0)
-1
-1
不错。内容少了点 不算太差! 显示全部

不错。内容少了点 不算太差!

立即评论 投诉 热度(262) 回复(0)
0
0
快到9千年了。就剩下2个太空科技和一个奇观没点上 感觉玩到头了。 显示全部

快到9千年了。就剩下2个太空科技和一个奇观没点上 感觉玩到头了。

立即评论 投诉 回复(2)
0
0
玩了2关!不合我的口味!! 显示全部

玩了2关!不合我的口味!!

立即评论 投诉 回复(0)
1
1
不玩MC的表示好难· 显示全部

不玩MC的表示好难·

立即评论 投诉 回复(0)
1 2 3 4 ... 21 跳转