问题是一个AJAX。当您键入URL或刷新页面时,脚本将起作用。当您单击“活动日志”按钮时,脚本不会。iframe不是您报告的症状的因素。
这是因为单击该链接将永远不会加载新页面。它会触发替换部分内容的AJAX调用,使其 看起来 像一个新页面,但事实并非如此。
就Facebook而言,通常唯一更改的是所报告的URL(但不会触发hashchange!)和
#mainContainerdiv 的内容。
您还必须
@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(无论如何都应这样做)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)