不在DOM中逃逸的&符号(& amp;)产生href

时间:2013-09-11 13:54:15

标签: javascript w3c ampersand

这是我的问题。 我需要使用DOM创建一个href =(..),href应该包含一些&符号。

我做了什么:

 var anchor = document.createElement('a');   
     var link = "../php/page.php?id=100&mode=edit";  
     anchor.setAttribute("href", link);  
     parent.appendChild(anchor);

我遇到的问题是,当我尝试点击链接时,&放大器;遗骸并没有逃脱,并且应该如此。

2 个答案:

答案 0 :(得分:1)

您正在使用JavaScript修改DOM,而不是使用HTML创建DOM。 JavaScript不是HTML。 JavaScript字符串文字中的&表示&不是&。只需说&

var link = "../php/page.php?id=100&mode=edit";

请注意,如果您尝试在XHTML文档中的script元素的主体中使用它,则上述情况不正确(但如果您将文档作为text/html提供,则浏览器会将其视为HTML和不是XHTML)。有关详细信息,请参阅compatibility guidelines。我通过不使用XHTML来避免这个问题,它增加了复杂性,但几乎没有开发人员可以从使用它中获得任何好处。

答案 1 :(得分:0)

在Javascript中设置&的{​​{1}}属性时,href不会自动转义。

有关如何动态替换此字符串,请参阅this question