JavaScript FAQ(十)——架構(Frame)__Java

來源:互聯網
上載者:User

 八、架構

 

1. 我的頁面在架構裡嗎。(Is my page framed?)

Q:我的頁面是架構中的頁面呢,還是瀏覽器的頂層視窗呢。

A:要測試頁面是否在架構中,可以使用下面的條件操作符:

 
if (self.location!=top.location) // if yes, you're framedif (self.location==top.location) // here you aren't framed

樣本。我們假設你的網站使用架構提供了一些功能導航(就像這個網站一樣www.javascripter.net/faq)。假設你的頂層框架組(frameset)在檔案/index.hm中。如果一個使用者訪問了一些沒有在架構的頁面,應該如何處理呢。(這種情況可能發生,如使用者使用搜尋。)對於這類使用者,你可能希望顯示一個到頂層框架組的超連結——只在頁面不在架構中時顯示。

 
if (self.location==top.location) {  // The page is not in the frameset index.htm !!!  document.write('<p><a href="/index.htm">Home page</a>')}

該頁上就使用了類似的代碼。如果你在頂層視窗中開啟該頁,你就會看到一個額外的超連結內容目錄(Table of Contents)(就在頁面頂端,標題的正下方)。這個超連結會把你帶回架構視圖。

 

2. 跳出架構(Breaking out of  a frameset)

Q:一些不懷好意的傢伙會從別的網站把我的頁面載入到他們的架構。我如何才能跳出這些架構呢。

A:你只需要測試你的頁面是否在架構中,就像上一個問題提到的。如果是,你可以很容易跳出架構:


 
if (self.location!=top.location) top.location=self.location;

不過,要保守使用這個小技巧——特別是你自己的網站也使用架構時。

 

譯者註:

關於這個問題,可以分為兩種情況:

1. 對於獨立頁面,可以採用上面的方法

2. 如果頁面也在架構中,可以判斷所在架構的名稱是否和預設的相同:

 
if(window.name != "dd")  top.location=self.location;

3. 同時更新兩個架構(Updating tow frames at a time?)

Q:我是否可以同時更新兩個(或更多)架構。

A:可以。同時更新幾個架構最簡單的方法就是使用JavaScript函數,向即將被更新的架構中載入新頁面。例如,如果你有兩個架構,left和right,那麼同時更新這兩個架構的函數就是:

function updateBothFrames() { top.left.location="newpage1.htm"; top.right.location="newpage2.htm";}

這個函數可以在使用者按下一個按鈕或者點擊一個超連結時調用。下面的例子給出了建立調用這個函數的按鈕和超連結的HTML代碼:

<a href="javascript:updateBothFrames()">Click here</a><input type=button value="Press me" onClick="updateBothFrames()">

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.