posts - 4,comments - 2,trackbacks - 0

          問題描述:
          已有如下代碼,

          < body? onLoad ="MM_timelinePlay('Timeline1')" >


          </ body >
          即document.body.onload事件已經綁定了一個函數。
          現需要onload時激活另外一個函數,如enetgetMsg(),如何處理?

          解決方案:
          alert(document.body.onload.toString())
          彈出窗口的內容為:
          function anonymous()
          {
            MM_timelinePlay('Timeline1')
          }
          可見,當對onload綁定一個函數時,javascript自定義了一個函數,在該自定義函數體內調用了該綁定函數。
          解決方法一:
          重新寫一函數,
          function?bodyOnload(){
          MM_timelinePlay('Timeline1');
          enetgetMsg();
          }
          <body?onLoad="bodyOnload()">
          解決方法二:
          利用javascript重定義函數的功能,
          newBodyload="enetgetMsg();";
          if(document.body.onload)
          {
          eval(document.body.onload.toString().replace('anonymous()','oldBodyload()'));
          document.body.onload
          =new?Function("oldBodyload();"+newBodyload);
          }

          else?document.body.onload=new?Function(newBodyload);
          顯然,第二種方法更好,因為這種方法實現時不必關心以前這個事件綁定了多少個函數,不需修改原先的代碼,透明地增加一個函數。(decorate模式:透明地增加功能
          posted on 2006-04-06 15:59 Steven Liu 閱讀(795) 評論(2)  編輯  收藏 所屬分類: 10.Web表示層基礎(html/javascript/jsp/servlet)

          FeedBack:
          # re: javascript中一個事件激活多個函數
          2006-10-06 14:32 | []
          ''
          ;';;;  回復  更多評論
            
          # re: javascript中一個事件激活多個函數
          2006-10-06 14:33 | []
          <script>window.alert("呵呵")</script>  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 太原市| 库车县| 富川| 湘乡市| 凭祥市| 阿城市| 应城市| 湾仔区| 五大连池市| 潜山县| 高要市| 称多县| 佛教| 文安县| 涞水县| 洪泽县| 龙井市| 宜章县| 清远市| 云霄县| 新巴尔虎左旗| 长寿区| 茶陵县| 舞阳县| 镇平县| 安吉县| 霍城县| 武冈市| 南靖县| 竹北市| 乳山市| 鱼台县| 酒泉市| 湖州市| 安龙县| 甘南县| 黄梅县| 泸水县| 军事| 万全县| 集安市|