如何使用 Greasemonkey alter/remove 内联 javascript?

How to alter/remove this inline javascript with Greasemonkey?

我在一个网站的头部找到了这个脚本:

<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()
        }

此脚本检查 Internet 下载管理器扩展并弹出注销消息。 是否可以使用 Greasemonkey 删除或更改此内联 java 脚本?

如果你想禁用 Chrome 插件的检查,很简单:脚本将一个函数分配给 onload,所以如果你只是将其他东西分配给 onloadExt_Detect 永远不会 运行,并且您的扩展名不会被检测到:

window.onload = () => null;

不幸的是,另一部分检查 criosUCBrowser 和 运行s detectIE 运行s s synchronously,大概是在页面加载开始的时候,而用户脚本在页面加载开始的时候不能可靠地 运行,所以这种行为可能无法改变,尽管你可以尝试使用 @run-at document-start : displayErrorAndLogout 在分配给 window.location 之前调用 alert,所以如果你这样做使得 alert 抛出错误,位置将不会改变:

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