2012-03-15 24 views
1
<!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> 

alert('test'); //刪除這一行,Opera加載不成功。 爲什麼? IE火狐瀏覽器Safari瀏覽器沒有問題...Opera框架BUG?

回答

3

耶,另約:空白承載計時問題..這真的很難得到這個權利:http://hsivonen.iki.fi/about-blank/

無論如何,當歌劇做了簡單的這樣的事不同於大家否則它的定義是Opera中的一個錯誤。我已經報道過當FRAME通過DOM(appendChild和friends)附加到FRAMESET時,「CORE-45144 - window.frames集合不會立即更新」,所以應該在適當的時候修復它。有一個持續的維護項目可能會解決這個問題,其結果不會讓它成爲Opera 12,但很有可能是下一次重大更新。

如果您需要解決方法,只需使用setTimeout()和一些較小的超時值來延遲寫入新幀的代碼。

感謝您提醒我注意:-)