window.frames[0].src為什么不行


最近做項目時遇到一個問題,就是js在框架結構的網頁文件與普通的網頁文本文件執行順序的區別

demo1:normal
<html>
<head>
<script>.......</script>
</head>
<body>........</body>
</html>

demo2: frameset

<html>
<head>
<script>.......</script>
</head>
<frameset>
    <frame>........</frame>
    <frame>........</frame>
</frameset>
</html>

普通文件(demo1):按代碼的先后順序執行,所以是先加載js,后加載dom文件;所以要在js獲得dom中的節點元素必須是在dom加載完畢才可以,否則為null;

框架結構(demo2):先加載網頁文件,再加載js;

window.frames[0].src為什么不行

最近很多朋友所問關於框架的問題都是因為不明白DOM框架原理而引起的,在這里就我所了解的,一並回答:

在DOM文檔對象模型中,window對象處於最高層,而框架除了是當前窗體的一個節點外,本身也是一個獨立window對象, 當frames作為window對象時,有name屬性,而沒有src屬性,只有作為節點時才有src屬性, 也就是說window.frames[0]這種寫法代表一個window對象,所以window.frames[0].src 當然是undefined了 ,這也是很多人容易混淆的原因!

若要獲得src屬性,可以這樣寫:document.getElementById(frame_id).src  //節點對象

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM