<!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 Firefox Chrome Safari没问题......
答案 0 :(得分:3)
是的,另一个关于:空白加载时间问题..这很难做到这一点:http://hsivonen.iki.fi/about-blank/
无论如何,当Opera做一个像这样的简单事情时,与其他人不一样,根据定义它是Opera中的一个错误。我已经报告过“CORE-45144 - 当FRAME通过DOM(appendChild和朋友)附加到FRAMESET时,不会立即更新window.frames集合”,因此应该在适当的时候修复它。有一个正在进行的维护项目可以解决这个问题,结果不会成为Opera 12,但很可能是下一个重大更新。
如果需要解决方法,只需使用带有一些小超时值的setTimeout()来延迟稍微写入新帧的代码。
感谢您引起我的注意: - )