2012-08-07 170 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: 你可以简单地删除脚本标记,如果你的脚本之前其他代码段在页面上运行,但我不认为这是因为它可以在可以接受的答案导致依赖这些脚本的部分页面停止运行。

如果脚本已经在运行,删除脚本标记可能不够,或者可能会产生错误,导致脚本无法运行。

你需要提供一个更好的例子,你正在做什么来得到明确的答案。