我有一个Greasemonkey功能,可以在浏览器访问的每个网站上创建一个按钮。
我想在访问过的网站主窗口的所有子窗口中防止这种情况发生。 (现在按钮显示在subwindows上,如adsense窗口或在论坛中输入textareas,当我在一个网站上时,我可以看到它几次。)
如何将此功能限制在网站的主窗口?
答案 0 :(得分:4)
那些“子窗口”是<iframe>
s
看到类似的问题:
如果iframe符合您脚本的@include
,@exclude
和@match
指令,那么Greasemonkey将在iframe上运行,就好像它们是主页一样。
解决子窗口/ iframe问题:
调整您的@include
, @exclude
rules和/或@match
directives以消除尽可能多的不受欢迎的iframe。
尽量避免在每个页面上运行脚本。
如果只需要顶窗操作,请使用the @noframes
directive。
要在功能级别控制,而不是整个脚本,您可以使用以下代码:
if (window.top === window.self) {
// CODE TO RUN ON MAIN PAGE
}
else {
// CODE TO RUN IN IFRAME
}