<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<script>
var G = function (id) {return document.getElementById(id); }
var C = function (tag) {return document.createElement(tag); }
window.onload = function ()
{
var f = C('frame');
f.name = 'my';
f.id = 'my';
f.src = 'about:blank';
G('content').appendChild(f);
alert('test');
window.frames['my'].document.write('Loading...');
}
</script>
<frameset id="content" rows="100%,*" cols="*" frameborder="no" border="0" framespacing="0">
</frameset>
</html>
警报('测试'); // 去掉这一行,Opera加载不成功。
为什么? IE 火狐 Chrome Safari 没问题...
是的,另一个关于:空白加载计时问题..真的很难做到这一点:http://hsivonen.iki.fi/about-blank/ http://hsivonen.iki.fi/about-blank/
无论如何,当 Opera 以与其他人不同的方式做这样一个简单的事情时,从定义上来说,这就是 Opera 中的一个错误。我报告了“CORE-45144 - 当 FRAME 通过 DOM(appendChild 和朋友)将 FRAME 附加到 FRAMESET 时,window.frames 集合未立即更新”,因此应该在适当的时候修复它。有一个正在进行的维护项目可能会解决这个问题等,结果不会出现在 Opera 12 上,但很可能会出现在下一个重大更新中。
如果您需要解决方法,只需使用 setTimeout() 和一些小的超时值来稍微延迟写入新帧的代码。
感谢您让我注意到这一点:-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)