2010-12-10 101 views

回答

3

您可以检查iframe的load事件

onLoad="alert(this.contentWindow.location);" 

或jQuery的:

$('iframe#yourId').load(function() { 
    alert("the iframe has been loaded"); 
}); 
+11

加载一个iframe没有什么可以检测到iframe中的链接点击 – epascarello 2010-12-10 15:31:04

+1

为什么?当你点击链接时,iframe的位置将被改变,所以iframe加载事件应该被触发。 – Anton 2010-12-10 15:45:11

+3

其实,这对我很有用,因为我不需要检测框架内的每一次点击,而是点击等于iframe位置变化的链接。编辑:我只能接受这个答案,不能投票出于某种原因(没有投票下来寿)。 – Paul 2010-12-11 11:48:50

8

假设您有一个ID为“myIframe”的iframe,并且iframe来自与主文档相同的域,则以下内容将检测到文档中任何地方的点击。当文档编辑,它使用文档的onclick财产不会这也将工作:

function iframeClickHandler() { 
    alert("Iframe clicked"); 
} 

var iframe = document.getElementById("myIframe"); 
var iframeDoc = iframe.contentDocument || iframe.contentWindow.document; 

if (typeof iframeDoc.addEventListener != "undefined") { 
    iframeDoc.addEventListener("click", iframeClickHandler, false); 
} else if (typeof iframeDoc.attachEvent != "undefined") { 
    iframeDoc.attachEvent ("onclick", iframeClickHandler); 
} 
+0

这假定iframe不是跨域我认为。 – erikvold 2013-12-15 20:45:04

+0

@erikvold:正确。我已在我的答案中添加了一条注释。 – 2013-12-16 10:51:06