2012-07-09 28 views
1

我有Chrome和Firefox這個問題,window.frames.length功能crse_FrameExists()總是返回零而實際上它應該返回值3和內真正的爲了繼續。我在IE9上沒有問題。有誰知道爲什麼發生這種情況。周圍所有的工作將是有益的...... 謝謝,下面 代碼段:window.frames.length在Chrome和Firefox瀏覽器返回0

alert(window.frames.length); 

返回0,在IE

回答

2

猜想3這是違法的把你framesethead或在body

把它直接放在head(沒有body)後面,你會沒事的。

例如:

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
    <script> 
     function crse_FrameExists(frameName){ 
      for (i = 0; i < window.frames.length; i++) { 
       if (window.frames[i].name == frameName) return(true); 
      } 
      return(false); 
     } 
     window.onload=function(){ 
      alert("crse_FrameExists('fra_header'):" + crse_FrameExists('fra_header')); 
     }; 
    </script> 
</head> 
    <frameset id="Nav4mainFrameset" framespacing="0" border="false" frameborder="0" rows="76,*"> 
     <frame name="fra_minimain" id="fra_minimain" scrolling="no" noresize src="index2.html"> 
     <frameset cols="188,*"> 
      <frame name="fra_header" id="fra_header" scrolling="no" noresize src="index2.html"> 
      <frame name="fra_content" id="fra_content" scrolling="auto" noresize src="index2.html"> 
     </frameset> 
    </frameset> 
</html> 

不要忘記使用http://而不是file://爲你的測試Chrome的安全模型考慮每個文件作爲域名打開網頁。

並且不要把for="window" event="onload()"放在你的腳本元素中:這不是標準化的,並且在非MS瀏覽器上不起作用。你必須使用標準的onload解決方案,就像我的例子。

+0

更正了這一點,這是我的錯誤,frameset不在標記之內。感謝您提醒我注意。 – gaganHR 2012-07-09 10:37:59

+0

當框架集放在頭部和身體之外時,我驗證了'window.frames.length'的值爲'3'。在您撥打電話之前,不要忘記等待文件加載(使用onload)。 – 2012-07-09 10:38:53

+0

哪個版本的Google Chrome?在我的情況下,它仍然顯示0和false: – gaganHR 2012-07-09 10:41:28

相關問題