javascript - 在 JavaScript 中使用用户输入会破坏代码

标签 javascript html

我在 JavaScript 中使用用户输入。当然,为了安全起见,我的框架正在将一些符号更改为 HTML 代码。但出于某种原因,这破坏了我的 JavaScript。因此,例如这有效:

<a onclick="alert('hello')">Hello</a>

但这不是:

<a onclick="alert('hel l&#039; 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/

相关文章:

javascript - Immutable.js:通过索引获取 map 实体(不是按键)

javascript - 为什么这个 javascript 对象在使用和不使用模块模式时表现不同?

html - 移动浏览器与桌面浏览器字体大小的区别

JavaScript 导致 CSS 过渡不起作用

javascript - AJAX - 每当调用 AJAX 脚本时,Javascript 就会中断

javascript - 如何在 JavaScript 中比较颜色?

javascript - 让我的 javascript 数组能够访问includes()

javascript - Spring MVC中当满足另一个变量的条件时如何从一个jsp重定向到另一个jsp

javascript - 在 ruby​​ on rails 中提交 "submit"之前执行 js 代码

javascript - 如何在我的绘图图像上重叠 Canvas 圆并设置事件坐标