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

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


          網站導航:
           
          主站蜘蛛池模板: 新宾| 贺州市| 木兰县| 墨竹工卡县| 焦作市| 临湘市| 乌鲁木齐县| 吐鲁番市| 宁陵县| 山阳县| 卢龙县| 岳西县| 安丘市| 松阳县| 修武县| 沂南县| 抚顺市| 普陀区| 寻甸| 和顺县| 井陉县| 车险| 新晃| 清丰县| 南汇区| 南投市| 汝州市| 大同市| 沾益县| 石狮市| 皮山县| 安徽省| 泸定县| 中超| 开封市| 修文县| 岢岚县| 句容市| 平原县| 罗田县| 大新县|