Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Safari 执行多次的注入脚本_Safari_Safari Extension - Fatal编程技术网

Safari 执行多次的注入脚本

Safari 执行多次的注入脚本,safari,safari-extension,Safari,Safari Extension,我已经阅读了文档,并理解这是意料之中的: 脚本被注入顶层页面和任何具有HTML源(如iFrame)的子级。不要假设每个浏览器选项卡上只有一个脚本实例 不过,我想知道: 除了iFrame,还有哪些元素具有“HTML源”(图像?对象?)?“HTML源代码”这个术语对我来说非常模糊 有没有办法检测哪个元素正在执行脚本 我已经按照建议,通过确定window===window.top,过滤掉了iframe,但是其他元素仍然在执行脚本,并且执行的比我想要的多得多 谢谢。其他HTML源可能是框架或对象标记(带

我已经阅读了文档,并理解这是意料之中的:

脚本被注入顶层页面和任何具有HTML源(如iFrame)的子级。不要假设每个浏览器选项卡上只有一个脚本实例

不过,我想知道:

  • 除了iFrame,还有哪些元素具有“HTML源”(图像?对象?)?“HTML源代码”这个术语对我来说非常模糊
  • 有没有办法检测哪个元素正在执行脚本
  • 我已经按照建议,通过确定
    window===window.top
    ,过滤掉了iframe,但是其他元素仍然在执行脚本,并且执行的比我想要的多得多


    谢谢。

    其他HTML源可能是框架或对象标记(带有HTML内容)。我不认为可能是别的。然而,就我所知,它们也应该用
    window===window.top
    过滤掉。尝试
    console.log
    ing
    document.location
    变量,查看哪个URL运行注入的脚本,也许您可以找到加载它们的内容。

    我回答自己的问题是因为我没有在问题中提供足够的信息,这确实是我自己的错。为我辩护,我当时不知道我提供的信息太少

    无论如何,在寻找解决方案的过程中,包括以下关键信息:

    • 脚本中的所有内容都发生在
      文档
      加载前
      事件中(或者应该发生的事件)
    我了解到,
    beforeload
    事件只对文档中的子资源激发。不适用于文档(或窗口)本身。我删除了事件处理程序,并确保该脚本作为启动脚本应用(它是)。我已经将窗户作为顶窗进行了测试,所以我被覆盖了。现在我的注入脚本只触发一次