JS 动态创建iframe在IE下的两个问题解析
内容摘要
这篇文章主要为大家详细介绍了JS 动态创建iframe在IE下的两个问题解析,具有一定的参考价值,可以用来参考一下。
表单提交到动态创建的iframe问题描述以下代码,一般用于在当前
表单提交到动态创建的iframe问题描述以下代码,一般用于在当前
文章正文
这篇文章主要为大家详细介绍了JS 动态创建iframe在IE下的两个问题解析,具有一定的参考价值,可以用来参考一下。
表单提交到动态创建的iframe
问题描述以下代码,一般用于在当前页无刷新提交表单,其原理是把表单的target设为页面上某个iframe的id,使该iframe成为提交的目标,避免新开窗口或跳转。但这段代码在IE 6、7下无效。
/**
* 动态创建iframe
*
* @param
* @arrange (www.idcnote.com)
**/
<form action="http://www.baidu.com/" method="post" target="testframe">
<input type="submit" value="Submit" />
</form>
<script>
var iframe = document.createElement('iframe');
iframe.id = 'testframe';
iframe.name = 'testframe';
document.body.insertBefore(iframe, document.body.firstChild);
</script>
解决方案以innerHTML方式插入iframe,例如:
<script>
var div = document.createElement('div');
div.innerHTML = '<iframe id="testframe" name="testframe" />';
document.body.insertBefore(div, document.body.firstChild);
</script>
动态创建iframe的onload事件
问题描述以下代码在页面中创建一个iframe,并给iframe绑定onload事件回调,但此回调在IE 6、7、8下均无效。
/**
* 动态创建iframe
*
* @param
* @arrange (www.idcnote.com)
**/
<script>
var iframe = document.createElement('iframe');
iframe.id = 'testframe';
iframe.name = 'testframe';
iframe.src = 'http://www.baidu.com/';
iframe.onload = function() { alert('onload'); };
document.body.insertBefore(iframe, document.body.firstChild);
</script>
解决方案 用attachEvent接口绑定事件回调,例如:
/**
* 动态创建iframe
*
* @param
* @arrange (www.idcnote.com)
**/
<script>
var iframe = document.createElement('iframe');
iframe.id = 'testframe';
iframe.name = 'testframe';
iframe.src = 'http://www.baidu.com/';
var fn = function() { alert('onload'); };
if (iframe.attachEvent) {
iframe.attachEvent('onload', fn);
} else {
iframe.onload = fn;
}
document.body.insertBefore(iframe, document.body.firstChild);
</script>
注:关于JS 动态创建iframe在IE下的两个问题解析的内容就先介绍到这里,更多相关文章的可以留意
代码注释