How to overwrite the method in Javascript

來源:互聯網
上載者:User

我最近在做的一個產品是嵌入在MOSS之中,但自2007開始就發現微軟其中一些javascript函數寫的有問題或者是不符合我們的需求,為此,我們需要覆蓋這些native函數。

譬如有一個native方法叫mtd1,如果要覆蓋它,主要的做法是使用 window.mtd1 = function { ... your logic .... };  但有時候為了某些需求,微軟的js檔案載入時間會比我們自己的晚,這樣其實我們並不能正常的覆蓋這個函數。 此問題的解決方案是使用

window.setTimeout(function()
    {
      window.mtd1 = function { ... your logic .... };
    }, 100);

上邊的100是個時間(毫秒),實際使用時候會發現該時間並不好控制,會根據網路情況、機器情況而不同,也能設太大了,以免執行過晚。

依然有解決辦法,看一下樣本

function setOverrideFunction()
{
 if(window.mtd1!= null)
 {
   window.mtd1 = function { ... your logic .... };
 }
 else
 {
   window.setTimeout(function()
   {
      setOverrideFunction()
   },100);
 }
}

window.setTimeout(function()
    {
      setOverrideFunction();
    }, 100);

OK,完美解決....

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.