js中frame的操作問題


這里以圖為例,在這里把frame之間的互相操作簡單列為:1變量2方法3頁面之間元素的互相獲取。

A  首先從 父(frameABC)------->子(frameA,frameB,frameC)

    a1 : 訪問變量名name

          假如在frameABC中操作那么可以:

           window.frames("frameA").contentWindow.name

           或者document.getElementById("frameA").contentWindow.name

           或者jquery:window.$("#frameA")[0].contentWindow.name

    a2:訪問方法func

           假如在frameABC中操作那么可以:             

            window.frames("frameA").contentWindow.func();

           或者document.getElementById("frameA").contentWindow.func();

           或者jquery:window.$("#frameA")[0].contentWindow.func();

    a3:訪問子頁面元素:username

            假如在frameABC中操作那么可以:             

            window.frames("frameA").contentWindow.document.getElementById("username");

           或者document.getElementById("frameA").contentWindow.document.getElementById("username");

           或者jquery:window.$("#frameA")[0].contentWindow.$("#username");

B 然后從子(frameA,frameB,frameC)------------>到父(frameABC)

     b1:訪問父頁面變量name,假如在frameA中(子頁面)操作那么可以:

          window.parent.name;

     b2:訪問父頁面方法func,假如在frameA中(子頁面)操作那么可以:

          window.parent.func();

     b3:訪問父頁面元素username,假如在frameA中(子頁面)操作那么可以:
          window.parent.$("#username")

      或者:window.parent.document.getElementById("username");

------------------------------------------------------------------------------

總結:frame只是一個頁面框架,要想操作子frame中的元素都需要首先進入到window或者contentWindow。從子頁面訪問父頁面,需要計算好父子關系,分幾層結構。

        在網上看了其他帖子,談到有關頁面加載的問題。大概意思是在子frame頁面還沒加載出來就進行元素操作,會引起bug,有興趣的可以在下面寫寫自己的見解。

 

語句1. window.parent.frames[1].location.reload(); 
語句2. window.parent.frames.bottom.location.reload(); 
語句3. window.parent.frames["bottom"].location.reload(); 
語句4. window.parent.frames.item(1).location.reload(); 
語句5. window.parent.frames.item('bottom').location.reload(); 
語句6. window.parent.bottom.location.reload(); 
語句7. window.parent['bottom'].location.reload(); 


免責聲明!

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



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