Internet Explorer:URL中的HTML实体

时间:2017-03-19 22:31:13

标签: javascript php html internet-explorer url

我有以下PHP代码:

echo "<input type='image' src='myImage.png' onClick='javascript:location.href = \"index.php?p=1&copy=true\"' />";

如果我点击图片,Chrome会重定向到index.php?p=1&copy=true。但是,如果我在Internet Explorer 11中点击图像,它会重定向到index.php?p=1©=true

Internet Explorer似乎取代了URL中的HTML实体。

我尝试使用&amp; &,但我遇到了同样的问题:IE将其替换为版权符号。

如何在网址中使用&copy? 我知道一种可能的解决方案是用&copy替换&whatever,但我必须改变我的洞系统。

还有其他人有同样的问题:

https://gist.github.com/pguillory/5136408

2 个答案:

答案 0 :(得分:3)

为什么不交换变量?

而不是index.php?p=1&copy=true它应该仍然适用于index.php?copy=true&amp;p=1

答案 1 :(得分:2)

正确的版本是&amp;。遗憾的是,IE11确实有一个很大的错误,导致它采用&amp;copy并将其转换为版权符号。

我找到了一种解决方法:对c中的copy进行百分比编码:

echo "<input type='image' src='myImage.png' onClick='location.href = \"index.php?p=1&amp;%63opy=true\"' />";
// --------------------------------------------------------------------------------------^^^

在IE11上失败的正确版本示例:http://jsbin.com/dajihiwiwo/

在IE11上运行的上述示例(也是正确的,更加钝的):http://jsbin.com/nehuxazeka/