0

我有 JS 通过 AJAX 调用远程服务器。响应包含与此类似的内容

<script>alert(document.getElementById('some_generated_id').innerHTML; ... </script>

用户复制响应并用于自己的目的。现在我需要确保在执行此操作时没有一个浏览器运行代码:

var response = '<scrip.....';
document.getElementById('output_box').innerHTML = response;

同样应该适用于任何HTML标签。我知道.text()jQuery 将完全满足我的需要:

var response = '<scrip.....';
$('#output_box').text(response);

我正在寻找任何解决方案,包括但不限于:转义特殊字符,但正确显示它们;为标签添加零宽度空间(必须高效);部分输出。必须是纯JS。

4

1 回答 1

1

如果您使用的是服务器端语言,则可能有一种方法可以转义特殊字符。

在 PHP 中,您可以使用htmlspecialchars(),它将某些在 HTML 中具有重要意义的字符转换为 HTML 实体(即 & 到 &)。它们仍将正确显示,您将能够复制和粘贴文本,但不应运行 javascript。

如果您需要一个纯 JavaScript 解决方案,有人在这里回答了https://stackoverflow.com/a/4835406/15000

于 2013-10-24T21:15:12.563 回答