【问题标题】:Are DOM events cleared when iframe src is changed?更改 iframe src 时是否清除 DOM 事件?
【发布时间】:2015-07-05 11:45:32
【问题描述】:

我有一个带有 iframe 的 html 页面,并想使用 src 属性切换内容。 iframe 内容可能包含 JQuery 和 Angular。如果我更改了 src 属性,是否在加载新的 iframe 内容之前清除了 iframe 中的 DOM 事件(JQuery 和 Angular 资源)?

【问题讨论】:

    标签: jquery angularjs html iframe


    【解决方案1】:

    是的。 iframe 窗口的整个环境被擦除并替换为新页面的新环境。这包括 JavaScript 环境和其中的所有内容——全局变量、声明的函数、加载的脚本等——以及完整的 DOM 结构,以及任何事件处理程序。

    【讨论】:

      【解决方案2】:

      如果您所说的“DOM 事件”是指 DOM 事件处理程序,那么是的,它们已被清除。

      DOM 事件处理程序附加到特定的 DOM 元素。当这些 DOM 元素被替换时,所有的事件处理程序也将消失。而且,设置 iframe 的 .src 将替换 iframe 中的所有 DOM 元素,因此所有先前的事件处理程序也将消失。

      事实上,替换 iframe 的 .src 本质上是加载一个全新的页面,因此整个 Javascript 上下文被替换并重新构建。前一页中的任何内容都没有保留。

      【讨论】:

        【解决方案3】:

        是的,这些事件会被清除,因为当您更改 iframesrc 时,Iframe 会加载该 URL 内容并创建一个新的 window/document,它最初没有绑定事件。基本上它就像新鲜的 DOM。

        【讨论】:

          猜你喜欢
          • 2014-02-23
          • 2011-01-26
          • 2015-11-07
          • 2011-06-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多