JavaScript視窗功能指南之建立快顯視窗

來源:互聯網
上載者:User
Internet Explorer 5.5支援一個新的window對象的方法:creatPopup()。你可以向下面一樣建立一個快顯視窗:

  var popupObj = window.createPopup();

  當你建立了這個對象後,快顯視窗並不顯示。你必須要調用它的show方法:

  popupObj.show(yOffset, xOffset, width, height, referenceObj)

  在這裡:

  yOffset 是快顯視窗距離螢幕左上方的水平位移。

  xOffset 是快顯視窗距離螢幕左上方的垂直位移。

  width 是快顯視窗的寬度。

  height 是快顯視窗的高度。

  referenceObj 是一個選擇性參數,它替代螢幕左上方做為引用yOffset 和 xOffset 的參照。

  讓我們示範一下新的快顯視窗的用處。如果你點擊下面的連結,一個所有這個教程的菜單就會彈出來。注意,當菜單彈出時,頁面就滾動回到它的頂部。我們怎麼樣執行這個快顯視窗呢?首先,你需要定義一個可見菜單,它隨後會被轉載進快顯功能表。為了實現隱藏連結,可以將菜單放置到一個隱藏的位置。我們選擇位置(-1000,-1000),並在菜單的style標記中定義它(在HEAD段的某個地方):

  <STYLE>

   .menu {position: absolute; top: -1000; left: -1000}

  </STYLE>

  我們執行菜單做為表格的連結:

  <TABLE CLASS=menuID=submenu>

   <TR><TD NOWRAP>

    <A HREF="names.html" TARGET="CONTENT">How to name your windows and frames</A>

   </TD></TR>

   <TR><TD NOWRAP>

    <A HREF="open.html">How to open a new window</A>

   </TD></TR>

   <TR><TD NOWRAP>

    <A HREF="features.html">How to specify the features of a new window</A>

   </TD></TR>

    <TR><TD NOWRAP>

    <A HREF="utilize.html">How to utilize the window features</A>

   </TD></TR>

   <TR><TD NOWRAP>

    <A HREF="exist.html">How to check if a window exists</A>

   </TD></TR>

   <TR><TD NOWRAP>

    <A HREF="reference.html">How to close a window</A>

   </TD></TR>

   <TR><TD NOWRAP>

    <A HREF="manipulate.html">How to manipulate a window</A>

   </TD></TR>

   <TR><TD NOWRAP>

    <A HREF="write.html">How to write content to a window</A>

   </TD></TR>

   <TR><TD NOWRAP>

    <A HREF="opener.html">How to reference the opener</A>

   </TD></TR>

   <TR><TD NOWRAP>

    <A HREF="dialog.html">How to create a dialog box</A>

   </TD></TR>

   <TR><TD NOWRAP>

    <A HREF="popup.html">How to create a pop-up window</A>

   </TD></TR>

   <TR><TD></TD></TR>

  </TABLE>

  連結本身(教程的頁面)不會改變URL,但是當被點擊時,就調用showMenu()函數:

  <A HREF='#' ONCLICK='showMenu(this, submenu)'>Tutorial's Pages</A>

  showMenu()函數有2個參數,一個是連結化物件,它調用函數,另一個是菜單的ID。我們要採取的第一個行為是分配快顯視窗的body對象:

  var popupBodyObj = popupObj.document.body;

  然後,設定邊界為1象素,紫色,固體樣式:

  popupBodyObj.style.border = "1px purple solid";

  填充快顯視窗的內容絕不是一個瑣碎的工作,實現的一個方法就是使用innerHTML和outerHTML:

  popupBodyObj.innerHTML = menuID.outerHTML;

  接著,我們需要對頁面的所有連結指派onClick事件處理常式,定義這個事件的響應函數為doclick。

  for (var i = 0; i < popupBodyObj.all.length; i++) {

   if (popupBodyObj.all[i].tagName == "A")

         popupBodyObj.all[i].onclick = doClick;

  }

  下面是showMenu()函數的全部代碼:

  function showMenu(linkObj, menuID) {

   var popupObj = window.createPopup();

   var popupBodyObj = popupObj.document.body;

   popupBodyObj.style.border = "1px purple solid";

   popupBodyObj.innerHTML = menuID.outerHTML;

   for (var i = 0; i < popupBodyObj.all.length; i++) {

    if (popupBodyObj.all[i].tagName == "A")

     popupBodyObj.all[i].onclick = doClick;

   }

   popupObj.show(0, linkObj.offsetHeight, menuID.offsetWidth, menuID.offsetHeight, linkObj);

  }

  函數的最後一條語句是顯示快顯視窗。我們將快顯視窗放置於調用它的連結linkObj旁邊。如果你省略了這個引用,快顯視窗將參照螢幕左上方被放置。水平位移是0。為了避免視窗彈出時連結被隱藏,我們要設定對於連結高度的垂直位移,linkObj.offsetHeight。很自然,我們設定視窗的寬度和高度為初始菜單的寬度(menuID.offsetWidth)和高度(menuID.offsetHeight)。

  函數doClick()是一個2行代碼的程式,它修改當前視窗的URL(parent.href)為點選連結的URL(this):

  function doClick() {

   parent.location = this.href;

   return false;

  }

總結
  在這個教程中,我們試圖覆蓋JavaScript有關視窗相關特徵的大多數內容。我們給你展示了如何根據你的要求開啟一個新視窗,怎樣在視窗中寫內容,操縱它,關閉它。同時,我們介紹了如何引用開啟視窗的父視窗。最後,我們接觸到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.