【发布时间】:2018-03-17 17:48:01
【问题描述】:
我该如何进行这项工作?
<a href='javascript:func("Jack'S Birthday")'>Jack's Birthday</a>
【问题讨论】:
-
有什么理由需要滥用
href来获取 JavaScript 代码?
标签: javascript json escaping freemarker html-escape-characters
我该如何进行这项工作?
<a href='javascript:func("Jack'S Birthday")'>Jack's Birthday</a>
【问题讨论】:
href 来获取 JavaScript 代码?
标签: javascript json escaping freemarker html-escape-characters
如下操作:
// How about using variables instead?
var emily = "Emily'S Birthday"
var birthdays = {
john: "John'S Birthday"
}
function func(val) {
console.log(val);
}
<!DOCTYPE html>
<html>
<body>
<a href='javascript:func("Jack'S Birthday")'>Jack's Birthday</a>
<br>
<a href="javascript:func('Norman\'S Birthday')">Norman's Birthday</a>
<br>
<a href="javascript:func(emily)">Emily's Birthday</a>
<br>
<a href="javascript:func(birthdays.john)">John's Birthday</a>
</body>
</html>
解释:
\ 转义时,将单引号保留在双引号中
$apos;时,在单引号内使用双引号
最重要的是,使用变量,它们可以减轻很多痛苦 -
一个。您不必进入 html 来修改值,
湾。这些可以在一个地方或单个文件中声明,
C。它们可以从后端获取
d。最好的是,无需处理报价!
【讨论】:
显然您不能在 HTML 属性中转义字符。正确的方法是使用 HTML 实体,例如 &apos;:
<a href='javascript:console.log("&apos;")'>click me</a>
【讨论】:
如果可能,这样做
<html>
<header>
<script>
function func(x) {
alert(x);
}</script>
</header>
<body>
<a href="javascript:func('Norman\'S Birthday')">Birthday</a>
</body>
</html>
【讨论】:
addEventListener。
转换为 NCR。这应该可以。
<html>
<a href='javascript:func("Norman'S Birthday")'>Birthday</a>
</html>
或者。
<html>
<a href='javascript:func("Norman'S Birthday")'>Birthday</a>
</html>
【讨论】: