• IE8-浏览器下iframe的动态onload事件处理


    先上代码:

    <html>
      <head></head>
      <body>
        <iframe src="http://www.w3school.com.cn/i/eg_landscape.jpg" id='iframe1'></iframe> 
      </body>
    </html>
    <script>
      var iframe = document.getElementById('iframe1');
      iframe.onload=function(){
        alert('static');
      }
      setTimeout(function(){iframe.src = 'http://www.qiyipic.com/common/fix/records.png';},2000);
    </script>

    测试环境:IE8浏览器

    期待效果:页面刚加载完时alert一下,2s之后再alert一下

    实际效果:只在页面刚加载完时alert了一下,2s之后并没有alert

    原因分析:IE8及以下浏览器不支持iframe的动态onload事件处理(img支持),也就是给它的src属性重新赋值

    解决办法:在IE下时,用attachEvent绑定事件

    <html>
      <head></head>
      <body>
        <iframe src="http://www.w3school.com.cn/i/eg_landscape.jpg" id='iframe1'></iframe> 
      </body>
    </html>
    
    <script>
      var iframe = document.getElementById('iframe1');
      if(iframe.attachEvent){
        iframe.attachEvent('onload',function(){
            alert('ok');
        });    
      }else{
        iframe.onload=function(){
          alert('ok');
        }    
      }
      setTimeout(function(){iframe.src = 'http://www.qiyipic.com/common/fix/records.png';},2000);
    </script>

     PS:attachEvent只在低版本IE浏览器中被兹磁(zici,你问我兹磁不兹磁,我是兹磁的,写博客也要遵循基本法),且事件type前要加on,现代浏览器都用addEventListener

    参考链接:http://blog.csdn.net/frankwangzy1103/article/details/6852259

  • 相关阅读:
    【牛客网】Finding Hotel
    【牛客网】Longest Common Subsequence
    【ZOJ】4012 Your Bridge is under Attack
    【LOJ】#2210. 「HNOI2014」江南乐
    可能是一篇(抄来的)min25学习笔记
    【LOJ】#3020. 「CQOI2017」小 Q 的表格
    【51nod】1602 矩阵方程的解
    【51nod】1634 刚体图
    【51nod】1407 与与与与
    【51nod】1776 路径计数
  • 原文地址:https://www.cnblogs.com/wangxuehao/p/6894664.html
Copyright © 2020-2023  润新知