Wie erkennt man den Klick des Benutzers auf den Link im Iframe mit JavaScript?JavaScript: Erkennung eines Link-Klicks innerhalb eines Iframes
Antwort
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");
});
Laden eines iframe hat nichts zu erkennen einen Klick auf einen Link im iframe – epascarello
warum? Wenn Sie auf den Link klicken, wird die Position von iframe geändert, sodass das Iframe Load Event ausgelöst werden sollte. – Anton
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
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);
}
Dies geht davon aus, dass der iframe nicht Cross-Domain ist, denke ich. – erikvold
@erikvold: Richtig. Ich habe meiner Antwort eine Notiz hinzugefügt. –
Sie können dem Iframe nur JavaScript hinzufügen, wenn sich der Iframe in derselben Domäne befindet. – epascarello