我的用户脚本仅在刷新页面或在iframe上有效时才起作用,而不在主页上起作用?

我的用户脚本仅在刷新页面或在iframe上有效时才起作用,而不在主页上起作用?,第1张

我的用户脚本仅在刷新页面或在iframe上有效时才起作用,而不在主页上起作用?

问题是一个AJAX。当您键入URL或刷新页面时,脚本将起作用。当您单击“活动日志”按钮时,脚本不会。iframe不是您报告的症状的因素。

这是因为单击该链接将永远不会加载新页面。它会触发替换部分内容的AJAX调用,使其 看起来 像一个新页面,但事实并非如此。

就Facebook而言,通常唯一更改的是所报告的URL(但不会触发hashchange!)和

#mainContainer
div 的内容。

您还必须

@include
所有FB页面,因为类似
https://www.facebook.com/ @include     https://www.facebook.com/*// @version     1// ==/Userscript==var pageURLCheckTimer = setInterval (    function () {        if (    this.lastPathStr  !== location.pathname ||  this.lastQueryStr !== location.search ||  this.lastPathStr   === null ||  this.lastQueryStr  === null        ) { this.lastPathStr  = location.pathname; this.lastQueryStr = location.search; gmMain ();        }    }    , 222);function gmMain () {    if (window.self === window.top)        alert ('"New" main (top) page loaded.');    else        alert ('"New" iframed page loaded.');}

但是, 由于页面被大量AJAX处理,因此您会发现页面首次加载时触发几乎总是为时过早。

明智的做法是

waitForKeyElements
在您真正关心的页面的特定部分 使用 (未在问题中指出。)

这是使用的示例

waitForKeyElements
。请注意,要
@require
在Chrome中使用,必须使用Tampermonkey(无论如何都应这样做)。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4957490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存