2010-12-10 4 views

Antwort

3

Sie können iframe Ladeereignis

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

oder auf Jquery überprüfen:

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

Laden eines iframe hat nichts zu erkennen einen Klick auf einen Link im iframe – epascarello

+1

warum? Wenn Sie auf den Link klicken, wird die Position von iframe geändert, sodass das Iframe Load Event ausgelöst werden sollte. – Anton

+3

Eigentlich funktionierte das für mich, weil ich nicht jeden Klick innerhalb des Frames erkennen muss, sondern auf den Link klicken, der dem iframe standortwechsel entspricht. EDIT: Ich bin nur in der Lage, diese Antwort zu akzeptieren, kann nicht aus irgendeinem Grund abstimmen (nicht gewählt tho). – Paul

8

Angenommen, Sie haben einen Iframe mit der ID "myIframe" und der Iframe stammt aus der gleichen Domäne wie das Hauptdokument. Folgendes wird einen Klick irgendwo im Dokument erkennen. Dies funktioniert auch, wenn das Dokument bearbeitet werden kann, die das onclick Eigenschaft des Dokuments mit nicht:

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

Dies geht davon aus, dass der iframe nicht Cross-Domain ist, denke ich. – erikvold

+0

@erikvold: Richtig. Ich habe meiner Antwort eine Notiz hinzugefügt. –