use*_*495 14 html javascript jquery
假设我有一串HTML代码.我想使用JQuery <script>从字符串中删除所有标记.
我怎样才能做到这一点?
注意:我想使用JQuery而不是REGEX来执行此操作.
这有用吗? $(var).find('script').remove();
Ric*_*ton 13
这应该适合你:
var stringOfHtml = // your string here
$(stringOfHtml).find('script').remove();
Run Code Online (Sandbox Code Playgroud)
要删除脚本标记的新字符串:
var stringOfHtml = "<div><script></script><span></span></div>";
var html = $(stringOfHtml);
html.find('script').remove();
var stringWithoutScripts = html.wrap("<div>").parent().html(); // have to wrap for html to get the outer element
Run Code Online (Sandbox Code Playgroud)
JS小提琴示例 - 不得不使用p而不是脚本作为脚本打破小提琴,但同样的原则.
这里的实际工作答案(希望如此)
以下是脚本问题的解决方法,使用replace将脚本文本与其他内容交换(尝试使其成为唯一)然后删除这些新标记并再次使用replace以交换以防脚本在文本中的任何其他位置使用.是的,它确实使用正则表达式,但不删除脚本标记,所以我希望这没关系;):
var stringOfHtml = "<p></p><script>alert('fail');</scr" + "ipt><span></span>";
var wrappedString = '<div>' + stringOfHtml + '</div>';
var noScript = wrappedString.replace(/script/g, "THISISNOTASCRIPTREALLY");
var html = $(noScript);
html.find('THISISNOTASCRIPTREALLY').remove();
alert(html.html().replace(/THISISNOTASCRIPTREALLY/g, 'script'));
Run Code Online (Sandbox Code Playgroud)
老问题,但如果你仍然在寻找从字符串中删除脚本的最简单方法,请尝试
$.parseHTML(string);
Run Code Online (Sandbox Code Playgroud)
$ .parseHTML()自动从字符串中删除脚本标记.
编辑:
这是有效的,因为keepScripts默认值为false.(参考:$ .parseHtml)
$.parseHTML(data, context, keepScripts)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40651 次 |
| 最近记录: |