eck*_*kes 1 html javascript encoding
说我有这个HTML页面:
<html>
<head>
<script type="text/javascript">
function echoValue(){
var e = document.getElementById("/path/$whatever");
if(e) {
alert(e.innerHTML);
}
else {
alert("not found\n");
}
}
</script>
</head>
<body>
<p id="/path/$whatever">The Value</p>
<button onclick="echoValue()">Tell me</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我假设浏览器将ID字符串/path/$whatever视为简单字符串.实际上,它将其转换为$渲染表示($).
然而,javascript代码使用文字字符串$来搜索元素.因此,呼叫document.getElementById失败,我从未接受过段落的价值.
有没有办法强制浏览器按字面意思使用给定的ID字符串?
编辑:
当然我知道我不必逃避$.但是生成了网页并且生成器进行了转义.所以,我必须应付我所拥有的.
在中<p id="...">,$序列被解释为$,因为它出现在属性中并被视为HTML实体.所有其他元素属性也是如此.
在<script>元素中,HTML实体根本不被解释,因此它按字面意思显示.
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |