2012-05-25 39 views
0

我必須抓住其中包含document.write的JS代碼片段 - 這會導致document.write呈現後頁面變爲空白。我可以通過重新定義document.write來解決此問題,並將腳本的響應傳遞給一個函數,該函數用於輸出getScript()jQuery函數的響應。然而,我遇到了一個問題,其他元素和腳本在頁面稍後加載,我的重新定義阻止在頁面上輸出。在jQuery getScript()完成後,如何將document.write重新設置爲默認功能?如何在jQuery ajax完成後對document.write進行可移植

$.getScript('somescript.com/script/', function(){ 
    //Prevent document.write normal behavior 
    document.write = function(markup) { 
    fullMarkup += markup; 
    appendResponse(markup); 
    } 
} 
}); 

回答

2

只需將原始引用文件保存在某個變量中,然後在使用替換後恢復它。

window.backupWrite = document.write; 

和腳本

document.write = window.backupWrite; 
1

一旦一切都已經加載,它將空白頁面之後,執行document.write的succesfull加載(和執行)之後。

如果您的目標只是檢索並執行腳本,$.getScript()已經爲您做了。

$.getScript('somescript.com/script/'); 
0

document.write如果在文檔在某些大型瀏覽器中呈現後運行,則會完全清除DOM。也就是說,不要使用它。如果你沒有選擇你的外部腳本,那太糟糕了。您可以使用各種jQuery .append方法以字符串形式添加內容。

相關問題