location.href 用法详解

来源:互联网 发布:unity3d mesh 编辑:程序博客网 时间:2024/06/10 21:19

一:新页面的打开位置问题

问题提出:

在做原型设计时候,对于静态页面的链接,这样写onclick="location.href='http://localhost:8082/default.pr_automata.forward.do?nextPage=/OrderMan/page/newOrder1.jsp'">

估计是最常用的链接了!

这时候,就会出现一个问题:如果单纯的用

<a href="aa.html" target="">链接</a>

表示链接,你可以设置页面打开的地方,如:target="_self/_blank/_parent/_top",代表在当前页面/新打开页面/父页面/最顶端窗口打开页面。但是如果用location.href 可怎么确定在哪打开啊!

解决方案:

self.location.href="/url"       当前页面打开新页面,与默认的location.href 或者是windows.location.href 或者是 this.location.href 效果一样

parent.location.href="/url" 在父页面打开新页面

top.location.href="/url"       在顶层页面打开新页面

怎么样,简单好用吧!

 

二:location.href 是 & 还是 &amp;

最开始,我们写超链接可能是如下形式(注意蓝色部分):

 

<a href="list.asp?id=33&page=2">下一页</a>
 

后来 W3C 规定这样写(注意蓝色部分):

 

<a href="list.asp?id=33&amp;page=2">下一页</a>

这引出两个问题:

  1. 在浏览器中访问时如何写?
  2. JavaScript 中的 location.href 对应 url 中如何写?

第一个问题:应该是 &,而不是 &amp;&amp; 是 HTML 中 & 的表示方法,并不是 URL 标准。

第二个问题:应该是 &,而不是 &amp;,原因和第一个问题的原因相同,也就是说应该是:

location.href = "id=33&page=2";

而不是:

location.href = "list.asp?id=33&amp;page=2";

之所以特别提出来,是因为针对第二个问题,IE 中,两种写法都正确,而 FF 中只认一种写法

0 0