JavaScript視窗功能指南之命名視窗和架構

來源:互聯網
上載者:User
當你建立一個架構結構的文檔時,<FRAME>標記的NAME屬性定義了每一個架構的名字,如下:

  <FRAMESET>

   <FRAME NAME="left" SRC="toolbar.html">

   <FRAME NAME="right" SRC="index.html">

  </FRAMESET>

  在例子中,文檔包含2個架構:left和right。在文檔toolbar.html中,連結代碼就象下面的一樣:

  <A HREF="about.html" TARGET="right">About Us</A>

  <A HREF="feedback.html" TARGET="right">Feedback</A>

  注意, <FORM>標記同樣支援TARGET屬性,它定義了響應表單的目標視窗。而<BAEE>標記則指明了文檔中所有連結的通用預設目標視窗:

  <BASE TARGET="right">

  上面的標記定義了頁面中所有元素的目標位置。以下的HTML元素支援target屬性:<A>、<AREA>、<FORM>。

  在實際應用中,<BASE>元素必須出現在文檔的HEAD標記間,要先於任何指向外部資源的元素前。如果在文檔中指定了<BASE>標記,那麼連結將不再遵循預設的target位置,而是被明確地指向另外一個不同的target位置:

  <HEAD>

  <BASE TARGET="right">

  </HEAD>

  <BODY>

  <A HREF="table.html" TARGET="_self">Table of Contents</A>

  <A HREF="about.html">About Us</A>

  <A HREF="feedback.html">Feedback</A>

  </BODY>

  如上所見,第1個連結的target是 "_self" (帶有一個底線),這表示當點擊這個連結時,新文檔會在當前活動的視窗中開啟。下表列舉了HTML中一些特殊的target位置標識:

Target 含義
_blank 在一個新的空視窗中裝載文檔,新視窗沒有命名。
_parent 在連結所在視窗的直接父視窗中裝載文檔。
_search 在瀏覽器的搜尋區裝載文檔,注意,這個功能只在Internet Explorer 5 或者更高版本中適用。
_self 在連結所在的視窗中裝載文檔。
_top 在最上層視窗中裝載文檔。

  現在我們瞭解了架構名字,下面將它們與視窗一起工作。當定義target為 "_blank"時,a一個新視窗就會彈出來。比如,如果想讓一個連結在新視窗中開啟,請使用下面的代碼:

  <A HREF="newpage.html" TARGET="_blank">A New Page</A>

  新視窗沒有命名,換言之,它不能被其他元素的 TARGET 屬性所引用。但是當我們使用一個標準的target名字時,會發生什麼呢?請看下面的定義:

  <A HREF="newtip.html" TARGET="tip">A New Tip</A>

  在這種情況下,我們為新視窗提供了一個特殊的名字。 新視窗的名字為 "tip", 因此任何連結或者表單,只要定義了 TARGET="tip", 就會在同一視窗中裝載頁面。如果沒有架構或者視窗匹配指定的target,那麼點選連結後將在新視窗中開啟。看看下面的例子:

  <A HREF="http://www.ccidnet.com/" TARGET="_blank">CCIDNET</A>

  <A HREF="http://www.ccidnet.com/tech/" TARGET="_blank">技術天地</A>

  看看產生的效果:

CCIDNET、技術天地
  點擊第一個連結,將在新視窗中開啟文檔。點擊第二個連結,也將產生一個新視窗。如果再次點選連結,新視窗仍將開啟。如你所見,連結每一次被點擊都會產生一個新視窗。讓我們再試一試下面的例子:

  <A HREF="http://www.ccidnet.com/" TARGET="main">CCIDNET</A>

  <A HREF="http://www.ccidnet.com/tech/" TARGET="main">技術天地</A>  

  效果如下:

CCIDNET、技術天地
  點擊第一個連結時,產生一個新視窗。接著點擊第二個連結,新文檔將出現在剛剛開啟的視窗中。新視窗定義了明確的名字,叫做 "main", 所以任何指定了 TARGET="main" 的連結或者表單都會在那個視窗被裝載。

名字的屬性
  藉助JavaScript,我們能夠通過視窗的名字屬性探索視窗的名字(適用於IE3+, N2+)。同樣,我們能夠設定一個架構或者視窗的名字屬性(適用於IE3+, N3+)。來看看下面的HTML文檔(showname.html):

  <HTML>

  <HEAD><TITLE>Display Name</TITLE></HEAD>

  <BODY>

  <SCRIPT LANGUAGE="JavaScript">

  <!--

  alert('The name of this window is: "' + window.name + '"');

  // -->

  </SCRIPT>

  </BODY>

  </HTML>

  再看看下面的連結:

  <A HREF="showname.html" TARGET="_blank">A New Window</A>

  <A HREF="showname.html" TARGET="first">First Window</A>

  <A HREF="showname.html" TARGET="second">Second Window</A>

  <A HREF="showname.html" TARGET="third">Third Window</A>

  文檔showname.html包含了一個指令碼程式,它負責在一個alert對話方塊中顯示視窗的名字。

  name 屬性屬於 window 對象。它可以被任何window對象使用,包括架構。例如,下面的語句設定了一個架構視窗的名字:

  parent.frames[1].name = "right";

  當操作架構時, 訪問不同層視窗是很簡單的。如果想參閱更多細節,請訪問 Window References 。

  HTML不能給當前視窗指派名字。就是說,在當前頁面不可能通過HTML代碼來設定當前視窗的名字。要實現這個目的,只有一個方法,就是給 window.name 屬性分配值。下面來試一試,看看如下的代碼,它建立了一個簡單按鈕,點擊後設定當前視窗的名字:

  <FORM>

  <INPUT TYPE="button" VALUE="Set Name to myWin" onClick="window.name = 'myWin'">

  </FORM>

  點擊按鈕後,當前視窗的名字就改變為 "myWin", 除非指派其他的值,它會一直保持。 我們可以在其他視窗中包含一些連結,並定義他們的target位置為myWin,就是 TARGET="myWin" 。

  如果前面你已經設定了當前視窗的名字為myWin,那麼連結將在當前視窗開啟。下面是新視窗中的代碼:

  <A HREF="http://www.docjs.com/" TARGET="myWin">Home</A>

  <A HREF="http://www.docjs.com/tips/" TARGET="myWin">Recent Tips</A>

  方便起見,我們給出能將當前視窗的名字設定為空白""的按鈕的源碼:

  <form>

    <input onClick="window.name = ''" type=button value="Reset Name" name="button2">

  </form>

  你要注意,不要給2個不同的視窗分配同一個名字。如果2個視窗被分配了同一個名字,那麼只有一個視窗被關聯,另外一個就將被忽視。
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.