ajax讀取頁面後,頁面script塊未執行的處理【原創】

來源:互聯網
上載者:User
  在用ajax擷取遠程頁面內容後,發現裡面的script塊未執行,第一感覺是把那些代碼調到當前頁面,但是又覺得不太方便,其次可以搜尋出所有script塊的內容,js檔案重新載入,代碼重新執行,效率是低了點,但更方便。
  順手寫了個解決此問題的回調處理:

var processRequest=function(_instance)
    {
        document.getElementById('tdiv').innerHTML+=_instance.responseText;        
        var _c=document.getElementsByTagName("SCRIPT");
        var _first=null;
        for (var i=0;i<_c.length;i++)
        {
            if (_c[i].src)
            {
                var _s=document.createElement("script");
                _s.type="text/javascript";
                _s.src=_c[i].src;
                _c[0].insertAdjacentElement("beforeBegin",_s);
                _c[i].parentNode.removeChild(_c[i]);             
            }
            else if (_c[i].text)
            {
                window.execScript(_c[i].text);
            }
        }
    }

  當取得頁面內容時,script塊已經在dom樹中,只是將它作為text執行了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.