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

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


          網站導航:
           
          主站蜘蛛池模板: 渭源县| 柳江县| 交城县| 长春市| 大同县| 三门峡市| 定边县| 松原市| 拜泉县| 阿坝县| 勐海县| 岐山县| 鄂州市| 鹿邑县| 莱阳市| 建宁县| 湾仔区| 耿马| 碌曲县| 安仁县| 年辖:市辖区| 蓬安县| 当雄县| 崇阳县| 晋城| 宾川县| 射阳县| 和静县| 松阳县| 蓬溪县| 肥乡县| 淮滨县| 喀什市| 河北区| 建湖县| 邹平县| 炉霍县| 井研县| 阳山县| 年辖:市辖区| 乌鲁木齐市|