Javascript 为什么这个简单的登录脚本可以在Tampermonkey中工作,但不能在Greasemonkey中工作?

Javascript 为什么这个简单的登录脚本可以在Tampermonkey中工作,但不能在Greasemonkey中工作?,javascript,firefox,greasemonkey,tampermonkey,Javascript,Firefox,Greasemonkey,Tampermonkey,我有一个小小的脚本,我在Chrome中使用Tampermonkey运行,效果非常好 然而,当我在Firefox中与Greasemonkey一起使用它时,它会显示在活动列表中,这意味着它与页面匹配,但它实际上并不执行代码。我知道这必须是一个简单的东西,我忽略了,但它没有击中我 var myVar=setInterval(function(){myTimer();},100); function myStopFunction() { clearInterval(myVar); } fun

我有一个小小的脚本,我在Chrome中使用Tampermonkey运行,效果非常好

然而,当我在Firefox中与Greasemonkey一起使用它时,它会显示在活动列表中,这意味着它与页面匹配,但它实际上并不执行代码。我知道这必须是一个简单的东西,我忽略了,但它没有击中我

var myVar=setInterval(function(){myTimer();},100);

function myStopFunction()
{
    clearInterval(myVar);
}

function myTimer()
{
    var p1 = "Login";
    var p2 = "mode=login";
    var x = document.body.innerHTML;

        if (x.match(p1) && x.match(p2)){
            document.documentURI = "/ucp.php?mode=login";
        }
    myStopFunction();
}
脚本逻辑/功能

  • 我使用计时器来防止脚本在永久循环中反复触发
  • 它只是检测我是否登录到phpBB论坛,如果没有,请将我发送到登录页面,以便我可以登录
  • 我正在使用文档URI,以便保留原始文档的位置,因此在登录时,它会将我带回到它
  • 通常phpBB在您登录时,它会将您带回索引页面,因此这保留了我转到实际链接的原始意图
  • 该脚本在使用TM的Chrome上运行良好,正如预期的那样,但在使用GM的Firefox上它不会触发,我是否遗漏了一些内容?

    来自:

    document.documentURI

    以字符串形式返回文档位置。根据DOM4规范,它是只读的

    实际上,仍然指定此属性必须是只读的

    如果Chrome允许您编写此属性,那么这是非标准行为,可能是一个bug


    使用
    location.assign()
    ,或
    location.replace()
    ,或通过编程方式单击登录按钮——这通常会保留目标页面。

    My savior。你好,伙计。谢谢你,真不敢相信我错过了。我现在记得,这是我在我的几个脚本中使用TM/Chrome的原因之一,包括这一个。让我和你提到的两个一起玩,看看我会带来什么,我会发回解决或不解决。再次感谢。正如我所承诺的那样,我尝试过并且
    assign()
    不起作用,在链接完成后会丢失链接,不幸的是,当您单击“登录”时,内置gui不会将您带回到将您带到那里的链接,否则我不会为此烦恼:(我尝试了很多不同的事情,当我完成的时候,事情变得如此复杂而不是简单,我放弃了。如果你认为你能在不费吹灰之力的情况下迅速帮助我,我将不胜感激,但如果这不是一个简单的解决方案,不值得浪费你的时间,我不想让你浪费时间。谢谢,老兄。问题n是“为什么这个脚本可以在Chrome上运行,而不能在Firefox上运行”。这个问题已经得到了回答……通常有phpBB特定的方法来回调原始页面,但phpBB显然与这个问题无关;)我们需要一个特定网站的链接来绝对确定。一般情况是可能的,但是:更多的工作,特定于网站,并且超出了这里所要求的范围。提出一个新的问题来解决问题。是的,我现在伙计,只是不认为让人们讨论这个问题是值得的。我会继续破解,直到我找到答案顺便说一句,我不想让它特定于phpBB;),因为我有其他类似的站点可以从这个概念中受益,如果我扩展参数,那么我想让它尽可能通用,然后扩展它。因此,我将看看我是否能让跨浏览器的基本功能正常工作,然后从那里开始。谢谢