javascript - JQUERY 时删除标签脚本

标签 javascript jquery regex

我有一个帖子系统,发布者可以在其中嵌入代码到另一个网站来引用内容。但是,我在使用 LookBook.nu 网站时遇到问题。

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

我想用正则表达式删除这个脚本标签。这可能吗?

这是嵌入的代码:

<!--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是因为我必须替换我系统的所有脚本。我要花很长时间才能做到这一点。

** 抱歉,我不会说英语。谷歌翻译是我最好的 friend 。 :D

最佳答案

在这种情况下,最大的问题是代码片段如何进入您的 HTML 源代码。如果您通过 AJAX 动态加载代码并使用 .innerHTML() (或 JQuery 的 .html() 方法)添加它,您可以首先使用正则表达式过滤它并替换有问题的脚本标记。我会尝试这样的事情:

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

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

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

重要的是在将其插入 DOM 之前进行清理。

P.S.:模式已更新,以防止其与前面的另一个标签匹配。

关于javascript - JQUERY 时删除标签脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31676263/

相关文章:

javascript - 预加载图像?

jquery - jqgrid 和 jqPivot : How to remove grouping when xDimension have multi value?

regex - 正则表达式 : replace match with its index

PHP正则表达式匹配以特殊字符开头的行

javascript - ajax.load 之后访问 DOM 元素

javascript - 在 Ionic 构造函数中调用变量返回 UNDEFINED

javascript - jquery 删除前置元素不起作用

javascript - Javascript 中的关联样式数组?

java - 尝试验证拉丁字符时出现 PatternSyntaxException

javascript - 如何使用 javascript 将单词放在单个冒号中并用逗号分隔单词