Jquery - 拦截在iframe内部点击的链接

时间:2010-04-29 11:32:13

标签: javascript iframe jquery same-origin-policy

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

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

Container是iframe内部div的id。

提前感谢任何建议

2 个答案:

答案 0 :(得分:2)

你需要进入<iframe>并在那里设置代表,你可以这样做:

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

编辑 - Mailslut在下面提出了一个很好的观点,如果iframe不在同一个域(和端口)上,你就不能做这样的事情了。如果是这种情况,并且您想要了解更多原因,read about the same-origin policy出于安全原因。

答案 1 :(得分:1)

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

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