先看现象:
<html>
<body>
<a id="a_test1" href="http://blog.youkuaiyun.com" mce_href="http://blog.youkuaiyun.com">hello@163.net</a>
<a id="a_test2" href="http://blog.youkuaiyun.com" mce_href="http://blog.youkuaiyun.com">hello#163.net</a>
<input type="button" onclick="button1Click()" value="测试1" />
<input type="button" onclick="button2Click()" value="测试2" />
<mce:script type="text/javascript"><!--
function button1Click() {
document.getElementById("a_test1").href = "http://blog.youkuaiyun.com/zswang";
alert(document.getElementById("a_test1").innerHTML);
}
function button2Click() {
document.getElementById("a_test2").href = "http://blog.youkuaiyun.com/zswang";
alert(document.getElementById("a_test2").innerHTML);
}
// --></mce:script>
</body>
</html>
测试1
输出:http://blog.youkuaiyun.com/zswang
测试2
输出:hello#163.net
这是为什么呢?就是文本存在“@”字符导致。
firefox中正常。
目前想到的方案就是先赋值href再赋值一次innerHTML
本文探讨了HTML中使用特殊字符导致JavaScript无法正确修改链接的问题,并提供了在Firefox浏览器下有效的解决方案。

被折叠的 条评论
为什么被折叠?



