我在同一页面上执行了几个不同的GM脚本(通过Tampermonkey运行,尽管使用Greasemonkey观察到类似的行为)。其他脚本正在使用GM API调用,并使用@grant(GM_xmlhttpRequest,GM_addStyle,GM_ * Value调用)在其脚本中指定。我正在处理的新脚本不需要访问其中任何一个,因此我将Tampermonkey新脚本的默认值保留为@grant none
。
离开@grant none
会破坏其他脚本以及页面上运行的一些javascript / jquery内容。根本没有指定@grant允许一切按预期运行。
根据https://wiki.greasespot.net/@grant,如果没有指定@grant,则不暗示。 Tampermonkey看起来好像猜测脚本需要什么,所以不知道它在幕后为这个特定的脚本(https://tampermonkey.net/documentation.php#_grant)做了什么。
关于这种奇怪之源的任何想法,或者它对我来说只是因为我在这里遗漏了什么而感到不安?
如果需要示例代码,这就是我正在做的事情的要点。它实际上并不复杂(仅仅是一个例子,因为这是我正在研究的内部代码):
var found = false;
$.each($('#id').children(),function(i,value){
if ($(value).text == 'my string'){
found = true;
}
});
if (found){
$('#id').append('<div></div>');
}
编辑:如果这是一个错误,希望有一些牵引力: https://forum.tampermonkey.net/viewtopic.php?f=17&t=2384