现在有一段代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <head>
        <title>WebHelp</title>
    </head>
<script type="text/javascript">
url="file:///C:/TEST/%/urltest2.htm#CSHID=1011";
document.location.replace(url);
window.focus();
</script>
    <body>
    </body>
</html>
在这个htm文件中,打开文件就会转到urltest2.htm的页面。在IE6,IE8中都能够正常执行,IE7中不行。
IE6,8中页面显示好之后,右键属性显示的URL为:file:///C:/TEST/%25/urltest2.htm#CSHID=1011
IE7中显示为:file:///C:/TEST/%2525/urltest2.htm#CSHID=1011
%在IE中被转码了2次,知道原因的请解答一下,谢谢。

解决方案 »

  1.   

    “%”的转码就是%25,明显可以看出在ie上 你转码两次就成了%2525。
    % 转码一下就是%25 在转一下就把%再转%25就成了 %2525,路径中非要用%作为路径目录吗?
    不是必要就取掉,或者转一次码。或者解码一次。 或者不转码两次 转码两次是为了解决url中文传参,你的并没有中文啊
      

  2.   

    试了下ie7貌似正常,显示地址为E:\TEST\%25\urltest2.htm
      

  3.   

    或者你再试下
    document.location.replace(encodeURI(url));
      

  4.   


    我没有自己转码,是IE自己默认的吧。同样的代码,IE6.8中就没有这个问题。
      

  5.   


    htm后面的#必须要有,后面要传递参数