Greasemonkey 脚本停止工作并出现错误:unsafeWindow.document.watch 不是函数
我对这一切都很陌生,但这个脚本曾经在 Firefox 上运行,但最近停止了。它将 Gmail 收件箱中的未读邮件计数放在窗口/选项卡标题的开头。
unsafeWindow.document.watch('title',
function(prop, oldval, newval) {
if (matches = newval.match(/Inbox \((\d+)\)/)) {
names = newval.match(/\w+/)
newval = '(' + matches[1] + ') unread - ' + names[0] + ' Inbox';
}
return (newval);
});
运行时,错误控制台显示“unsafeWindow.document.watch 不是函数”。我尝试在谷歌和这里搜索,但无法弄清楚这一点。任何帮助将不胜感激!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看起来 Greasemonkey 的沙箱(XPCNativeWrapper)已经改变了。这似乎是一个可能的错误,但目前我没有看到任何未解决的问题。
此外,watch() 是非标准的(可能会消失),并且根据 文档不是意味着要使用除了临时调试。
同时,您可以通过将代码注入页面范围来使该代码再次工作,如下所示:
但更智能、更长期、更健壮、可移植的解决方案是重构代码以使用间隔计时器。 ...
It looks like Greasemonkey's sandbox (XPCNativeWrapper) has changed. This seems like a possible bug, but I don't see any open issues at the moment.
Also,
watch()
is non-standard (may go away) and according to the documentation is not meant to be used except for temporary debugging.In the meantime, you can get that code working again by injecting it into the page scope, like so:
But the smarter, long-term, more robust, portable solution is to refactor the code to use an interval timer. ...