Comment détecter l'utilisateur cliquer sur le lien à l'intérieur de l'iframe en utilisant JavaScript?JavaScript: Détection d'un lien cliquer à l'intérieur d'un iframe
Répondre
Vous êtes en mesure de vérifier l'événement de chargement iframe
onLoad="alert(this.contentWindow.location);"
ou sur jquery:
$('iframe#yourId').load(function() {
alert("the iframe has been loaded");
});
chargement d'un iframe n'a rien à détecter un clic sur un lien dans l'iframe – epascarello
pourquoi? Lorsque vous avez cliqué sur le lien, l'emplacement de iframe sera modifié, donc iframe load event doit être déclenché. – Anton
En fait, cela a fonctionné pour moi, parce que je n'ai pas besoin de détecter chaque clic à l'intérieur du cadre, mais cliquez sur le lien qui est égal au changement d'emplacement iframe. EDIT: Je ne peux qu'accepter cette réponse, je ne peux pas voter pour une raison quelconque (je n'ai pas voté contre). – Paul
En supposant que vous ayez un iframe avec l'ID "myIframe", et que l'iframe provienne du même domaine que le document principal, les éléments suivants détecteront un clic n'importe où dans le document. Cela fonctionne également lorsque le document est modifiable, qui utilise onclick
du document propriété ne serait pas:
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);
}
cela suppose que l'iframe n'est pas un domaine croisé je pense. – erikvold
@erikvold: Correct. J'ai ajouté une note à ma réponse. –
Vous ne pouvez ajouter du JavaScript à l'iframe que si l'iframe se trouve dans le même domaine. – epascarello