web-dev-qa-db-fra.com

evénement JavaScript iFrame onload

J'ai un iFrame, où je veux envoyer une commande JavaScript après avoir chargé . Mon code actuel ressemble à ceci:

<iframe src="http://www.test.tld/" onload="__doPostBack('ctl00$ctl00$bLogout','')">

Mais avec ce code, la commande n'est pas exécutée. Que dois-je changer pour que cela fonctionne? Seuls Chrome et Firefox doivent être pris en charge.

22
Peleke

Utilisez la fonction .onload de JavaScript dans iFrame:

<iframe id="my_iframe" src="http://www.test.tld/">

<script type="text/javascript">
    document.getElementById('my_iframe').onload = function() {
        __doPostBack('ctl00$ctl00$bLogout','');
    }
</script>
26
Jasper

document.querySelector("iframe").addEventListener("load", function() {

  this.style.backgroundColor = "red";
  alert(this.nodeName);

});
<iframe src="http://www.example.com/" ></iframe>

4
antelove

Votre code est correct. Testez simplement pour vous assurer qu'il est appelé.

<script>
function doIt(){
  alert("here i am!");
  __doPostBack('ctl00$ctl00$bLogout','')
}
</script>

<iframe onload="doIt()"></iframe>
2

La réponse de @Jasper était presque correcte. Il ne manquait que httpSpour le src de l’iframe.

HTML:

<iframe src="https://www.example.com/" ></iframe>

JavaScript:

document.querySelector("iframe").addEventListener("load", function() {

  this.style.backgroundColor = "red";
  alert(this.nodeName);

});
0
reljicb