DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> JavaScript 基礎問答 四
JavaScript 基礎問答 四
編輯:JavaScript基礎知識     

 二、導航功能增強

 

1. 下拉菜單中的鏈接(Links in Select Menu)

Q:我如何實現在下拉菜單中鏈接到不同的頁面?

A:要創建一個所示的下拉菜單:

你可以使用下面的代碼:

  1. <form>
  2. <select 
  3. onChange="if(this.selectedIndex!=0)
  4. self.location=this.options[this.selectedIndex].value">
  5. <option value="" selected>Select a page
  6. <option value="startpag.htm">JavaScript FAQ
  7. <option value="numbers.htm">Numbers
  8. <option value="strings.htm">Strings
  9. <option value="navigati.htm">Navigation
  10. <option value="colors.htm">Colors
  11. <option value="http://www.javascripter.net">JavaScripter.net
  12. </select>
  13. </form> 

只需要把菜單項及其相應的URL改為你需要就可以了。你可以使用絕對地址(就像http://www.javascripter.net),也可以使用相對地址(像 mypage.htm)。

 

2.  按鈕鏈接(Button Links)

Q:我怎麼才能把一個按鈕變為指向另外一個頁面的超鏈接呢?

A:要創建一個按鈕就像一個:

你可以使用這段代碼:

  1. <form> 
  2. <input type=button 
  3. value="insert button text here"
  4. onClick="self.location='Your_URL_here.htm'">
  5. </form> 

只需要改為你需要的按鈕文本和目標地址。試一下這個:

你可以使用絕對地址(像http://www.javascripter.net)也可以使用相對地址(像mypage.htm)。

 

3.  後退按鈕(Back Button)

Q:我能讓按鈕像浏覽器的“後退”按鈕一樣嗎?

A:要創建你自己的後退按鈕,可以使用這段代碼:

  1. <form>
  2. <input type=button value="Back"
  3. onCLick="history.back()">
  4. </form>

現在試一下:

 

4. 前進按鈕(Forward Button)

Q:我能讓按鈕像浏覽器中的“前進”按鈕一樣嗎?

A:要創建自己的“前進”按鈕,使用這段代碼:

  1. <form>
  2. <input type=button value="Forward"
  3. onCLick="history.forward()">
  4. </form>

如果浏覽器上的前進按鈕當前不可用,那麼這個“前進”按鈕同樣不能工作。這種情況就是當前頁是你浏覽歷史中的最後一頁。換句話說,如果你是使用浏覽器的“後退”按鈕到達的這個頁面(或者腳本編寫的後退按鈕),那麼這個前進按鈕就可以工作。現在試一下吧!

 

5. 查詢字符串(Query Stirngs)

Q:我的腳步可以訪問當前URL中的查詢字符串嗎?

A:查詢字符串(或搜索字符串)是URL中的一個可選部分,它跟在文件名後面,以問號引導(?)。例如,下面的URL在HTML文件名後包含了一個查詢字符串 ?myquery

http://www.myfirm.com/file.html?myquery

你的腳本可以使用JavaScript的location.search屬性訪問當前URL中的查詢字符按。點擊下面按鈕試一下看看!(為了查看地址中的URL,你可能想要在頂層浏覽器窗口中顯示這個頁面。)

創建這些按鈕的代碼是:

  1. <form>
  2. <input type=button value="Add query ?test"  
  3. onClick="selfself.location=
  4. self.location.protocol+'//'
  5. +self.location.host
  6. +self.location.pathname+'?test'">
  7. <input type=button value="Show query" 
  8. onClick="alert('Query string: '+self.location.search)">
  9. <input type=button value="Remove query" 
  10. onClick="selfself.location=
  11. self.location.protocol+'//'
  12. +self.location.host
  13. +self.location.pathname">
  14. </form>

注意:查詢字符串有時候可能不會如預期一樣的工作。例如,如果你將這個頁面保存本地磁盤上,上面在Internet Explorer 4.x就不會工作(但是在Netscape Navigator中依然有效)。

 

6. 向頁面傳遞參數(Passing parameters to a page)

Q:我可以從也頁面向另外一個頁面傳遞參數嗎?

A:可以。有幾種不同的方式可以實現:

  • 把參數保存在cookie中
  • 把參數保存在另外一個窗口或框架的變量中
  • 把參數存在可以修改的屬性top.name(浏覽器窗口的名字)中
  • 把參數作為一個查詢字符串拼接在目標頁面的URL後面

這裡是一個簡單的例子來演示所有這些傳遞參數的方法。傳遞的值應該是字符換“It_worked”。當你點擊下面的按鈕時,按鈕的事件腳本會存在這些值(1)在名為parm_value的cookie中,(2)以頂層變量top.parm_value保存以及(3)在top.name屬性中。然後,腳本引導浏覽器到parm_get.htm,它的URL包含一個值為URL編碼的查詢字符串。

 

7. 查找文本(Searching for text)

Q:我怎樣在頁面查詢一個特定的文本字符串?

A:在Netscape Navigator 4.x中,可以使用window.find(string) 方法查找;參見查找對話框。在Internet Explorer 4.x或更新版本中,創建一個文本范圍對象(下面的例子中是TRang),然後使用TRang.findText(string)。

示例:下面的腳本根據用戶輸入的文本查找並在頁面上高亮顯示。

這個示例的代碼為:

  1. <form name="f1" action="" 
  2. onSubmit="if(this.t1.value!=null && this.t1.value!='')
  3. findString(this.t1.value);return false"
  4. >
  5. <input type="text" name=t1 value="" size=20>
  6. <input type="submit" name=b1 value="Find">
  7. </form>
  8. <script language="JavaScript">
  9. <!--
  10. var TRange=null
  11. function findString (str) {
  12.  if (parseInt(navigator.appVersion)<4) return;
  13.  var strFound;
  14.  if (navigator.appName=="Netscape") {
  15.   // NAVIGATOR-SPECIFIC CODE
  16.   strFound=self.find(str);
  17.   if (!strFound) {
  18.    strFound=self.find(str,0,1)
  19.    while (self.find(str,0,1)) continue
  20.   }
  21.  }
  22.  if (navigator.appName.indexOf("Microsoft")!=-1) {
  23.   // EXPLORER-SPECIFIC CODE
  24.   if (TRange!=null) {
  25.    TRange.collapse(false)
  26.    strFound=TRange.findText(str)
  27.    if (strFound) TRange.select()
  28.   }
  29.   if (TRange==null || strFound==0) {
  30.    TRange=self.document.body.createTextRange()
  31.    strFound=TRange.findText(str)
  32.    if (strFound) TRange.select()
  33.   }
  34.  }
  35.  if (!strFound) alert ("String '"+str+"' not found!")
  36. }
  37. //-->
  38. </script>
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved