注意:属于不同协议或不同主机的两个地址之间不能互相引用对方的location对象,这是出于安全性的需要。例如,当前窗口打开的是“www.a.com”下面的某一页,另外一个窗口(对象名为:bWindow)打开的是“www.b.com”的网页。如果在当前窗口使用“bWindow.location”,就会出错:“没有权限”。这个错误是不能用错误处理程序(EventHandler,参阅onerror事件)来接收处理的。
第一、简单介绍一下location属性、用法以及相关示例:
Location
包含了关于当前URL的信息。location对象描述了与一个给定的Window对象关联的完整URL。location对象的每个属性都描述了URL的不同特性。
通常情况下,一个URL会有下面的格式:协议//主机:端口/路径名称#哈希标识?搜索条件
例如:http://www.ijavascript.cn/jiaocheng/index.html#topic1?x=7&y=2这些部分是满足下列需求的:
“协议”是URL的起始部分,直到包含到第一个冒号。
“主机”描述了主机和域名,或者一个网络主机的IP地址。
“端口”描述了服务器用于通讯的通讯端口。
路径名称描述了URL的路径方面的信息。
“哈希标识”描述了URL中的锚名称,包括哈希掩码(#)。此属性只应用于HTTP的URL。
“搜索条件”描述了该URL中的任何查询信息,包括问号。此属性只应用于HTTP的URL。“搜索条件”字符串包含变量和值的配对;每对之间由一个“&”连接。
属性概览
protocol返回地址的协议,取值为'http:','https:','file:'等等。
hostname返回地址的主机名,例如,一个“http://www.microsoft.com/china/”的地址,location.hostname=='www.microsoft.com'。
port返回地址的端口号,一般http的端口号是'80'。
host返回主机名和端口号,如:'www.a.com:8080'。
pathname返回路径名,如“http://www.a.com/b/c.html”,location.pathname=='b/c.html'。
hash返回“#”以及以后的内容,如“http://www.a.com/b/c.html#chapter4”,location.hash=='#chapter4';如果地址里没有“#”,则返回空字符串。
search返回“?”以及以后的内容,如“http://www.a.com/b/c.asp?selection=3&jumpto=4”,location.search=='?selection=3&jumpto=4';如果地址里没有“?”,则返回空字符串。
href返回以上全部内容,也就是说,返回整个地址。在浏览器的地址栏上怎么显示它就怎么返回。如果想一个窗口对象打开某地址,可以使用“location.href='...'”,也可以直接用“location='...'”来达到此目的。
方法概览
reload()相当于按浏览器上的“刷新”(IE)或“Reload”(Netscape)键。
replace()打开一个URL,并取代历史对象中当前位置的地址。用这个方法打开一个URL后,按下浏览器的“后退”键将不能返回到刚才的页面。
二、location之页面跳转js如下:
//简单跳转
functiongotoPage(url){
//eg.varurl="newsview.html?catalogid="+catalogID+"&pageid="+pageid;
window.location=url;
}
//对location用法的升级,为单个页面传递参数
functiongoto_catalog(iCat){
if(iCat<=0){
top.location="../index.aspx";//top出去
}else{
window.location="../newsCat.aspx?catid="+iCat;
}
}
//对指定框架进行跳转页面,二种方法皆可用
functiongoto_iframe(url){
parent.mainFrame.location="../index.aspx";//
//parent.document.getElementById("mainFrame").src="../index.aspx";//usedomtochangepage//同时我增加了dom的写法
}
//对指定框架进行跳转页面,因为parent.iframename.location="../index.aspx";方法不能实行,主要是"parent.iframename"中的iframename在js中被默认为节点,而不能把传递过来的参数转换过来,所以用dom实现了该传递二个参数的框架跳转页面,希望那位仁兄不吝赐教!
functiongoto_iframe(iframename,url){
parent.document.getElementById(iframename).src="../index.aspx";//usedomtochangepagebyiframeName
//}
//回到首页
functiongohome(){
top.location="/index.aspx";
}