Как изменить / удалить этот встроенный JavaScript с Greasemonkey? - PullRequest
0 голосов
/ 04 марта 2019

Я нашел этот скрипт в заголовке веб-сайта:

<script type="text/javascript" >

function Ext_Detect_NotInstalled(ExtName,ExtID) {
}

function Ext_Detect_Installed(ExtName,ExtID) {
    alert("We have found unwanted extension. Please contact support")
    window.location = "logout.php"
}

var Ext_Detect = function(ExtName,ExtID) {
    var s = document.createElement('script');
    s.onload = function(){Ext_Detect_Installed(ExtName,ExtID);};
    s.onerror = function(){Ext_Detect_NotInstalled(ExtName,ExtID);};
    s.src = 'chrome-extension://' + ExtID + '/captured.js';
    document.body.appendChild(s);
}

var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;

function displayErrorAndLogout() {
    alert("Please use chrome browser to view the content");
    window.location = "logout.php"
}

if (is_chrome==true)
{
    window.onload = function() { Ext_Detect('Chrome','ngpampappnmepgilojfohadhhmbhlaek');};
} else {
    is_chrome = navigator.userAgent.toLowerCase().indexOf('crios') > -1;
    if (is_chrome == false){

        if (detectIE()){
            displayErrorAndLogout()
        }

        if (navigator.userAgent.indexOf('UCBrowser') > -1) {
            displayErrorAndLogout()
        }

Этот скрипт проверяет расширение менеджера загрузок в Интернете и выдает сообщение о выходе.Можно ли удалить или изменить этот встроенный Java-скрипт с помощью Greasemonkey?

1 Ответ

0 голосов
/ 04 марта 2019

Если вы хотите отключить проверку надстройки Chrome, это просто: скрипт назначает функцию для onload, поэтому, если вы просто назначите что-то еще для onload, Ext_Detect никогда не запустится, и ваше расширениене будет обнаружен:

window.onload = () => null;

К сожалению, другая часть, которая проверяет crios и UCBrowser и запускает detectIE, запускает синхронно , предположительно в начале загрузки страницыи пользовательские сценарии не могут работать надежно в самом начале загрузки страницы, поэтому поведение может быть невозможно изменить, хотя вы можете попробовать это сделать с помощью @run-at document-start: displayErrorAndLogout, вызовами alert до присвоения window.location, так что есливы делаете так, что alert выдает ошибку, местоположение не изменится:

@run-at    document-start
// ==/UserScript==
window.alert = function() {
  throw new Error();
};
...