我在 JavaScript 中使用用户输入。当然,为了安全起见,我的框架正在将一些符号更改为 HTML 代码。但出于某种原因,这破坏了我的 JavaScript。因此,例如这有效:
<a onclick="alert('hello')">Hello</a>
但这不是:
<a onclick="alert('hel l' lo')">Hello</a>
为什么下面的方法不起作用,我怎样才能让它起作用?
最佳答案
'
是 '
的 HTML。解析 HTML 并将结果传递给 JavaScript 编译器,因此您的 JavaScript 是 alert('hel ' lo')
并且您不能在字符串中包含未转义的 '
用 '
字符分隔的文字。
转义数据以使其安全地插入到 HTML 中不足以使其安全地插入到 JavaScript 中,然后依次将其插入到 HTML 中。
将用户输入存储在 a data-*
attribute 中(这是纯 HTML,因此您可以安全地使用 '
)然后从 JavaScript 中读取属性。
关于javascript - 在 JavaScript 中使用用户输入会破坏代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56998214/