iFrame onload JavaScript event

2019-01-07 22:14发布

问题:

I have an iFrame, where I want to send a JavaScript command after loading. My current code looks like this:

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

But with this code the command isn't executed. What must I change to make it work? Only Chrome and Firefox have to be supported.

回答1:

Use the iFrame's .onload function of JavaScript:

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

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


回答2:

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

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

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



回答3:

Your code is correct. Just test to ensure it is being called like:

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

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


回答4:

@Jasper 's answer was almost correct. It was only missing httpS for the src of the iframe.

HTML:

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

JavaScript:

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

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

});