js iframe的onload事件不去作用的原因及解决办法
时间:2016-01-08
在很多时候我们需要通过iframe来实现一些交互功能,并且在用iframe的时候往往要用到iframe的onload事件。但是iframe的onload事件在有些时候并不如我们所愿。本文章向大家分析iframe的onload事件不去作用的原因及解决办法。
通过createElement_x_x创建的iframe的onload事件在有些时候不响应,具体原因和解决办法如下。
首先,我们来看一下下面这种方法:
function createFrame(){
var frame = document.cerateElement("iframe");
frame.onload = function(){alert("loaded - createFrame");}
frame.src = "http://www.phper.org.cn";
document.body.a(frame);
}
这一段在FF下是完全如我们所想,能够达到预期效果,但是在IE下面似乎就失效了,导致这种结果的原因还不是十分清楚,有一种说法是IE在检测到 iframe的时候,就把认为它已经装载完成了,通过createElement_x_x创建的iframe,似乎在创建的一瞬间它的onload就完成了,后面的onload设定大概也就无效了。
下面我们再来看一个方法:
function includeFrame(){
var div = document.create_rElement_x("div");
div.innerHTML = "<iframe onload=\"javascript:alert('loaded -includeFrame');\" src=\"http://www.manongjc.com\"></iframe>";
document.body.a(div);
}
这个方法在IE和FF下面测试都通过,上面的那种说法虽然不是很有根据,但是目前还没有找到更好的解释。如果真的是如上面所说的话,那通过第二种方法正好可以解决,因为在第二种方法中iframe的onload事件跳过createElement_x_x("iframe")这个步骤,避免了IE的检测。
注 onload必须在src前面才可以.
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法