Safari 执行多次的注入脚本
我已经阅读了文档,并理解这是意料之中的: 脚本被注入顶层页面和任何具有HTML源(如iFrame)的子级。不要假设每个浏览器选项卡上只有一个脚本实例 不过,我想知道:Safari 执行多次的注入脚本,safari,safari-extension,Safari,Safari Extension,我已经阅读了文档,并理解这是意料之中的: 脚本被注入顶层页面和任何具有HTML源(如iFrame)的子级。不要假设每个浏览器选项卡上只有一个脚本实例 不过,我想知道: 除了iFrame,还有哪些元素具有“HTML源”(图像?对象?)?“HTML源代码”这个术语对我来说非常模糊 有没有办法检测哪个元素正在执行脚本 我已经按照建议,通过确定window===window.top,过滤掉了iframe,但是其他元素仍然在执行脚本,并且执行的比我想要的多得多 谢谢。其他HTML源可能是框架或对象标记(带
window===window.top
,过滤掉了iframe,但是其他元素仍然在执行脚本,并且执行的比我想要的多得多
谢谢。其他HTML源可能是框架或对象标记(带有HTML内容)。我不认为可能是别的。然而,就我所知,它们也应该用
window===window.top
过滤掉。尝试console.log
ingdocument.location
变量,查看哪个URL运行注入的脚本,也许您可以找到加载它们的内容。我回答自己的问题是因为我没有在问题中提供足够的信息,这确实是我自己的错。为我辩护,我当时不知道我提供的信息太少
无论如何,在寻找解决方案的过程中,包括以下关键信息:
- 脚本中的所有内容都发生在
的文档
事件中(或者应该发生的事件)加载前
beforeload
事件只对文档中的子资源激发。不适用于文档(或窗口)本身。我删除了事件处理程序,并确保该脚本作为启动脚本应用(它是)。我已经将窗户作为顶窗进行了测试,所以我被覆盖了。现在我的注入脚本只触发一次