Greasemonkey - @grant打破其他脚本

时间:2017-12-28 01:00:01

标签: javascript jquery greasemonkey tampermonkey

我在同一页面上执行了几个不同的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

0 个答案:

没有答案