国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

完美解決一個事件激活多個函數(shù)

2024-04-27 13:54:06
字體:
供稿:網(wǎng)友

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

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

  

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

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

  

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

  function anonymous()
  {
  alert("這是標簽調(diào)用的函數(shù)")
  }

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

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

  

 

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

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

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


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 根河市| 北辰区| 宿迁市| 临湘市| 太原市| 昭觉县| 宜兴市| 墨竹工卡县| 壶关县| 紫阳县| 梨树县| 南溪县| 新津县| 平昌县| 长垣县| 民权县| 寻乌县| 忻城县| 宜宾县| 青州市| 西青区| 招远市| 偏关县| 西宁市| 宁都县| 菏泽市| 杭州市| 温州市| 灌云县| 黄山市| 沛县| 巴马| 临夏市| 廊坊市| 鄂温| 阿瓦提县| 建湖县| 沭阳县| 绥化市| 瑞安市| 应用必备|