我已阅读文档并了解这是预期的:
将脚本注入顶级页面和任何包含HTML源代码的子项,例如iframe。不要假设每个浏览器选项卡只有一个脚本实例。
我很想知道:
我已按照推荐的方式确定window === window.top
来过滤掉iframe,但其他元素仍在执行脚本,并且执行 lot 比我想要的更多。
感谢。
答案 0 :(得分:2)
我回答自己的问题确实是我自己的错,因为我的问题并没有真正提供足够的信息。在我的辩护中,当我提供的信息太少时,我并没有知道。
无论如何,在旅途中寻找解决方案,I asked a question on Apple's dev forum并包含以下一些关键信息:
beforeload
(或应该是)的document
事件中。我学到的是beforeload
事件仅触发文档中的子资源。不适用于文档(或窗口)本身。我删除了事件处理程序,并确保脚本作为启动脚本应用(它是)。我已经将窗口的测试应用为顶窗,所以我被覆盖了。现在我的注射脚本只触发一次。
答案 1 :(得分:0)
其他HTML源可能是框架或对象标签(带有HTML内容)。我不认为它可以是其他任何东西。但是,据我所知,它们也应该用window === window.top
过滤掉。尝试console.log
document.location
变量以查看哪个网址运行您注入的脚本,也许您可以找到加载它们的内容。