现在有一段代码如下:
<!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次,知道原因的请解答一下,谢谢。
<!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次,知道原因的请解答一下,谢谢。
% 转码一下就是%25 在转一下就把%再转%25就成了 %2525,路径中非要用%作为路径目录吗?
不是必要就取掉,或者转一次码。或者解码一次。 或者不转码两次 转码两次是为了解决url中文传参,你的并没有中文啊
document.location.replace(encodeURI(url));
我没有自己转码,是IE自己默认的吧。同样的代码,IE6.8中就没有这个问题。
htm后面的#必须要有,后面要传递参数