當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

圓滿處理一個事件激活多個函數

圓滿處理一個事件激活多個函數

更新時間:2019-04-27 文章作者:未知 信息來源:網絡 閱讀次數:

  如果你的網頁中一個“OnLoad”事件要激活兩個以上的JavaScript函數,那怎么辦呢?小陽曾查閱了不少資料,結果都不盡如人意,無非是程序員根據情況,把要激活的函數統一放在一個函數里激活。

  但作為一個程序員,編寫的代碼的適用性是很重要的。請看下面一個例子:

  

  運行后你會發現,它只跳出一個“這是JS腳本調用的函數”的警告框。< BODY>標簽中要求激活的函數被“忽略”了。當然你可以運用前面提過的方法,把兩個函數放一個函數里激活。但這樣有不少弊端,特別是如果把這段JavaScript代碼寫成一個"myjs.js"文件,要用它的話直接加上< script language="JavaScript" src="myjs.js">< /script>即可,但如果還要在引用文件的頁面中根據情況修改標簽或者添加一段代碼,多麻煩呀。這就降低了代碼的適用性了。

  可不可以在編寫JavaScript代碼時就設計好,如果前面OnLoad事件已經有函數要激活,讓它仍然激活前面的函數,但同時也激活本段代碼所需要的函數?答案是肯定的。我們先看下這段代碼:

  

  運行后其中一個警告框中提示:

  function anonymous()
  {
  alert("這是標簽調用的函數")
  }

  發現什么了嗎?“document.body.onload.toString()”就是上面這段函數代碼!我們這段字符串作為代碼的一部分運行,那么我們就多了一個函數“anonymous()”,于是將這個函數和我們現在需要激活的函數一起激活就行了!

  下面我們以第一次提到的代碼為例進行修改,得到最終代碼:

  

 

  上段代碼中,變量myActive是JS代碼中要激活的函數,eval(string)函數是把其字符串參數當作是JavaScript腳本來運行。我們把document.body.onload.toString()中的“anonymous()”替換為“bodyload()”,得到一個新函數“bodyload()”,它包含了所有原來要激活的函數,再把函數“bodyload()”和我們要激活的函數一起在OnLoad事件中激活。

  為什么要把“anonymous()”替換為“bodyload()”呢?因為這個方法適用于所有事件(例如OnMouseOver),而所有事件toString()都是得到“anonymous()”,為了不和其它事件也用了這個方法沖突,我們把它替換掉。在其它事件中也依此替換即可。

  好了,我們運行一下最終代碼,如你所愿地兩個函數都激活了吧?添加的代碼也挺簡單,有挺強的適用性。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
亚洲嫩草影院久久精品