如何使用 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
,所以如果你只是将其他东西分配给 onload
, Ext_Detect
永远不会 运行,并且您的扩展名不会被检测到:
window.onload = () => null;
不幸的是,另一部分检查 crios
和 UCBrowser
和 运行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();
};
我在一个网站的头部找到了这个脚本:
<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
,所以如果你只是将其他东西分配给 onload
, Ext_Detect
永远不会 运行,并且您的扩展名不会被检测到:
window.onload = () => null;
不幸的是,另一部分检查 crios
和 UCBrowser
和 运行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();
};