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>  回復  更多評論
            

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


          網站導航:
           
          主站蜘蛛池模板: 镶黄旗| 阳新县| 连云港市| 格尔木市| 石林| 邵阳市| 阿拉善右旗| 五河县| 南投县| 遂昌县| 水城县| 元江| 太原市| 邳州市| 隆安县| 临高县| 临桂县| 平阴县| 潢川县| 衡山县| 临澧县| 武城县| 淳安县| 安平县| 汉阴县| 江陵县| 锡林郭勒盟| 丰镇市| 吴旗县| 郓城县| 镇宁| 蒙城县| 新竹县| 东海县| 岚皋县| 木里| 宁安市| 遂平县| 申扎县| 玉龙| 康平县|