【问题标题】:Attach click handler even on element inside iframe with jQuery使用 jQuery 甚至在 iframe 内的元素上附加点击处理程序
【发布时间】:2009-10-31 23:02:17
【问题描述】:

如何将点击事件处理程序附加到 iframe 内的元素?

这是我尝试过但不起作用的方法:

$("#parent iframe").contents().find("a").live("click", function () {
    alert ("test");
    return false;
});

iframe 在同一个域中。

【问题讨论】:

  • 只要主页和 iframe 来自同一个域,您的代码就可以工作。

标签: jquery iframe


【解决方案1】:

发现问题。 LIVE 在 iframe 中不起作用。切换到绑定工作正常。将改为进行手动事件委托。

【讨论】:

  • 请注意,这远不是您尝试使用位于另一个窗口/框架中的 jQuery 副本编写一个窗口/框架的唯一问题。对于任何复杂的事情,您都需要在两个框架中加载 jQuery 的副本。 jQuery 针对方便的单窗口脚本进行了优化,而不是跨窗口脚本(这本质上更复杂,不管是否使用 jQuery)。
【解决方案2】:

基本上可能不像猜测内容可能来自不同的域(通常使用 iFrame)。这些文章解释了原因:

iframes and cross domain security Cross-Domain Ajax Insecurity

或者,您需要修改 iFrame 中的源代码(如果您可以控制它),或者您可以要求用户降低他们的浏览器安全性(可能在 Intranet 上可能,但即使这样也不是一个好主意)。

【讨论】:

  • 它在同一个域上,但我会感谢你说它应该可以工作,我会再看一遍。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-23
  • 1970-01-01
  • 2010-12-08
相关资源
最近更新 更多