4

我试图拦截点击页面的链接,包括 iframe 内的链接。这是我拥有的代码,但它不起作用。有什么想法我需要做什么吗?

$("#container").delegate('a', 'click', function(e){ 
//do stuff
}

Container 是 iframe 内的 div 的 id。

提前感谢您的任何建议

4

2 回答 2

2

您需要进入内部<iframe>并将委托设置在那里,您可以这样做:

$('#myiframe').contents().find("#container").delegate('a', 'click', function(e){ 
  //do stuff
}

编辑 - Mailslut在下面提出了一个很好的观点,如果 iframe 不在同一个域(和端口)上,你不能做这样的事情。如果是这种情况,并且您想了解更多原因,出于安全原因,请阅读那里的同源策略。

于 2010-04-29T11:36:10.480 回答
1

为什么不在 iframe 中添加事件监听器,然后调用父/开启器来通知事件。

如果您 iframe 的内容位于不同的域中,您将无法执行此操作,因为它被归类为“点击劫持”,这是一个很大的安全威胁。

于 2010-04-29T11:43:45.260 回答