在JQUERY时删除标记脚本

时间:2015-07-28 12:24:43

标签: javascript jquery regex

我有一个帖子系统,发布商可以在其他网站上嵌入代码来引用内容。但是,我遇到了LookBook.nu网站的问题。

此嵌入代码的网站包含一个调用jQuery 1.6并导致我的系统崩溃的脚本标记。

我想用regex删除此脚本标记。这可能吗?

这是嵌入式代码:

<!--BEGIN HYPE WIDGET-->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
<script src="http://lookbook.nu/look/widget/7625244.js?include=all&size=medium&style=button&align=center"></script><div id="hype_container_7625244">
</div>
<!--END HYPE WIDGET--> 

Ps:不切实际使用noConflict是因为我必须替换我系统的所有脚本。这样做需要太长时间。

**对不起,我不会说英语。谷歌翻译是我最好的朋友。 :d

1 个答案:

答案 0 :(得分:1)

此案例中的一个重要问题是代码段如何进入HTML源代码。如果您通过AJAX动态加载代码并使用.innerHTML()(或者JQuery&#39; s .html()方法)添加代码,您可以先使用正则表达式对其进行过滤并替换有问题的脚本标记。我尝试这样的事情:

\<script\s+src\=["'][^>]*?jquery[^>]*?\>\<\/script\>\n?

如果你使用它并在将代码注入DOM之前用空字符串替换它,那么你应该没问题。

如果您已输出代码服务器端,例如在PHP中,您也可以在回显之前用preg_replace()替换标记。

重要的是只有在插入DOM之前清理

P.S。:模式已更新,以防止它与之前的另一个标记匹配。