2012-08-07 124 views
0

我有臨時存儲網頁代碼的div,但是,頁面包含javascript,我應該怎麼做才能阻止這些javascript,以便我的程序不會中斷?我用下面的代碼加載阻止加載頁面的javascript

$.ajax({ 
type:'GET', 
dataType:'html', 
cache:false, 
url:file, 
success:function(html){ 
    ... 
    ... 
    $('#temp').html(html) 
} 
}); 
+0

你想從你從AJAX調用回來的數據中刪除一些JavaScript? – Lix 2012-08-07 04:13:53

+0

@Lix類似的東西,但實際上並沒有刪除,因爲我需要拉回來並更新原來的一個 – panda 2012-08-07 04:26:40

+0

你有權訪問你正在加載的代碼嗎?您是否可以將腳本的功能更改爲僅在您調用腳本時執行?我的意思是將代碼從文檔就緒函數中提取出來,並將其置於自己的函數中,以便在準備好時調用它... – Lix 2012-08-07 04:36:54

回答

1

.html(string)功能將使用innerHTML其評估的所有腳本。您可以使用.text(string)來臨時保存您的HTML內容。

$('#temp').text(html); 

然後以後檢索,如果你想

$('#element').html($('#temp').text()); 

如果你只是想擺脫所有<script>標籤執行它,雖然使用簡單的regex替換。

** 更新 **

StackOverflow的already has some answers關於字符串刪除<script>標籤。

+1

[這裏是正則表達式方法的答案](http://stackoverflow.com/a/6660151/558021) – Lix 2012-08-07 04:15:44

+1

@Lix,謝謝!用它更新了我的答案 – 2012-08-07 04:16:55

-1

它可能只需要讓你的ajax請求同步請求,但你的問題有點不清楚,而且很可能是不可能的。

http://api.jquery.com/jQuery.ajax/

讓我澄清一下,因爲我得到了downvoted: 你可以簡單地刪除腳本標記,如果你的腳本之前其他代碼段在頁面上運行,但我不認爲這是因爲它可以在可以接受的答案導致依賴這些腳本的部分頁面停止運行。

如果腳本已經在運行,刪除腳本標記可能不夠,或者可能會產生錯誤,導致腳本無法運行。

你需要提供一個更好的例子,你正在做什麼來得到明確的答案。