我需要使用 jquery 的 $.html()
将客户创建的内容从输入文本区域插入到页面上的另一个 div
以实现实时预览功能
但是如果客户在内容中输入 JavaScript,例如:
<script type='text/javascript'>
alert('abc');
</script>
当使用.html()
调用时,javascript将被执行,如果我使用.text()
,那么内容将不会被视为html .
我该如何解决这个问题?我为它创建了一个jsfiddle:http://jsfiddle.net/larryzhao/VL82f/
更新:
也许我需要说得更清楚,我正在做 Markdown 的预览。因此,用户在文本区域输入 markdown,我将其转换为 html,并将其显示到 div#dest
。如果用户输入如上所示的脚本怎么办?有没有办法保留原始类型但不执行它?如果没有,那么我想我会编写一个正则表达式来删除我认为的脚本 block ..
我找到了两个在线markdown工具: http://daringfireball.net/projects/markdown/dingus这个执行它 http://www.ctrlshift.net/project/markdowneditor/而这个只是删除脚本 block
最佳答案
是否有针对 JavaScript 的 HTML 清理程序?如果是这样,这就是这样做的方法。请注意,正确执行此操作非常不容易,因此简单的正则表达式通常是不够的。如果您通过应用程序将其保存在某个位置,则预览功能可以通过发布和取回清理后的版本来利用该清理程序。
关于javascript - 使用 jQuery .html() 时如何阻止 JavaScript 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12311542/