提出问题:在把含有&符号的URL存入js变量,在读出来的时候,&符号会被转义成& 导致链接指向错误或者失效问题,看了很多网上的教程都比较麻烦,有的用参数替换,有的用正则匹配替换等,今天提供一个简单的防止js链接参数被转义的方法
解决方法:
方法很简单,那就是在使用链接参数存入变量的时候不要一次性写完链接,以下是错误示范:
<script>
var link = "home.php?mod=spacecp&ac=profile&op=verify&vid=5"; //直接将链接作为一整个字符串写入变量
</script>
结果是:
<script>
var link = "home.php?mod=spacecp&ac=profile&op=verify&vid=5";
//&全部被转义成了&
</script>
正确方法:使用字符拼接,就不会被转义
<script>
var link = "home.php?mod=spacecp"+"&ac=profile"+"&op=verify"+"&vid=5";
//其实实行拼接一次就可以了
</script>
原理:js首先执行了字符拼接程序,html还不能进行转码,所以最终呈现的效果就是&保留了原样,对于php也可以考虑一下这个方法。