`

JavaScript window.location对象

 
阅读更多


原文:
http://apps.hi.baidu.com/share/detail/54567640

location 地址对象 它描述的是某一个窗口对象所打开的地址。要表示当前窗口的地址,只需要使用“location”就行了;若要表示某一个窗口的地址,就使用“<窗口对象>.location”。

注意 属于不同协议或不同主机的两个地址之间不能互相引用对方的 location 对象,这是出于安全性的需要。例如,当前窗口打开的是“www.a.com”下面的某一页,另外一个窗口(对象名为:bWindow)打开的是“www.b.com”的网页。如果在当前窗口使用“bWindow.location”,就会出错:“没有权限”。这个错误是不能用错误处理程序(Event Handler,参阅 onerror 事件)来接收处理的。

示例

URL:http://b.a.com:88/index.php?name=kang&when=2011#first

protocol:

协议

"http:"

hostname:

服务器的名字

"b.a.com"

port:

端口

"88"

pathname:

URL中主机名后的部分

"/index.php"

search:

"?"后的部分,又称为查询字符串

"?name=kang&when=2011"

hash:

返回"#"之后的内容

"#first"

host:

等于hostname + port

"b.a.com:88"

href:

当前页面的完整URL

"http://www.a.com:88/index.php?name=kang&when=2011#first"

window.location和document.location互相等价的,可以交换使用

 

location的8个属性都是可读写的,但是只有href与hash的写才有意义。例如改变location.href会重新定位到一个URL,而修改location.hash会跳到当前页面中的anchor(<a id="name">或者<div id="id">等)名字的标记(如果有),而且页面不会被重新加载

 

注意

URL:http://b.a.com:88/index.php?name=kang&how=#when=2011#first

search:

"?name=kang&how="

第一个"?"之后

hash:

"#when=2011#first"

第一个"#"之后的内容

方法location.assign( url ) location.assign('http://www.baidu.com'); 等同于 window.location = 'http://www.baidu.com'

这种方式会讲新地址放到浏览器历史栈中,意味着转到新页面后“后退按钮”仍可以回到该页面。 location.replace( url ) 与assign方法一样,但会从浏览器历史栈中删除本页面,也就是说跳转到新页面后“后退按钮”不能回到该页面。目前IE、Chrome只是简单的跳转,只有Firefox会删除本页面的历史记录。 location.reload( force ) 重新载入当前页面。force为true时从服务器端重载;false则从浏览器缓存中重载,默认值false。

 

reload 方法,该方法强迫浏览器刷新当前页面。

语法: location.reload([bForceGet])

参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页。true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新")

replace 方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL。

语法: location.replace(URL)

在 实际应用的时候,重新刷新页面的时候,我们通常使用: location.reload() 或者是 history.go(0) 来做。因为这种做法就像是客户端点F5刷新页面,所以页面的method="post"的时候,会出现“网页过期”的提示。那是因为Session的安全 保护机制。可以想到: 当调用 location.reload() 方法的时候, aspx页面此时在服务端内存里已经存在, 因此必定是 IsPostback 的。如果有这种应用: 我们需要重新加载该页面,也就是说我们期望页面能够在服务端重新被创建, 我们期望是 Not IsPostback 的。这里,location.replace() 就可以完成此任务。被replace的页面每次都在服务端重新生成。你可以这么写: location.replace(location.href)

 

下面是相关的应用与知识点:

window.location.href
window.top.location.replace("http://www.jb51.net")
top.location.href("http://www.jb51.net")
window.navigate ("http://www.jb51.net")
Html:
<meta http-equiv="Refresh" content="0; url=http://baidu.com/" >
---------------------------------------
URL即:统一资源定位符 (Uniform Resource Locator, URL)
完整的URL由这几个部分构成:
scheme://host:port/path?query#fragment
scheme:通信协议
常用的http,ftp,maito等

 

host:主机
服务器(计算机)域名系统 (DNS) 主机名或 IP 地址。

port:端口号
整数,可选,省略时使用方案的默认端口,如http的默认端口为80。

path:路径
由零或多个"/"符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。

query:查询
可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技术制作的网页)传递参数,可有多个参数,用"&"符号隔开,每个参数的名和值用"="符号隔开。
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

fragment:信息片断
字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。(也称为锚点.)
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

对于这样一个URL

http://www.jb51.net:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

我们可以用javascript获得其中的各个部分
1, window.location.href

整个URl字符串(在浏览器中就是完整的地址栏)

本例返回值: http://www.jb51.net:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

2,window.location.protocol

URL 的协议部分

本例返回值:http:

3,window.location.host

URL 的主机部分

本例返回值:www.jb51.net

4,window.location.port

URL 的端口部分

如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符
本例返回值:""

5,window.location.pathname

URL 的路径部分(就是文件地址)

本例返回值:/fisker/post/0703/window.location.html

6,window.location.search

查询(参数)部分

除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值

本例返回值:?ver=1.0&id=6

7,window.location.hash

锚点

本例返回值:#imhere

 

分享到:
评论
1 楼 踏月流星 2012-02-28  
挺好的一篇文章。给个小小的建议:您别用灰色字体好吗,阅读起来挺不舒服的。

相关推荐

    javascript 打开页面window.location和window.open的区别.docx

    javascript 打开页面window.location和window.open的区别.docx

    JavaScript_window.setTimeout()_的详细用法

    JavaScript_window.setTimeout()_的详细用法

    JavaScript中window.open用法实例详解

    本文较为详细的分析了JavaScript中window.open用法。分享给大家供大家参考。具体如下: 代码如下:[removed] window.open (‘page.html’, ‘newwindow’, ‘height=100, width=400, top=0, left=0, toolbar=no, ...

    Javascript窗口与提示大全

    Javascript窗口与提示大全 ...onclick="javaScript:window.location.href='http://angelialily.javaeye.com/';"/&gt; //-----------关闭按钮----------// 关闭" onclick="javaScript:window.close();"&gt;

    JavaScript编程中window的location与history对象详解

    主要介绍了JavaScript编程中window的location与history对象,是JavaScript入门学习中的基础知识,需要的朋友可以参考下

    JavaScript使用HTML5的window.postMessage实现跨域通信例子

    利用iframe和location.hash,数据直接暴露在了url中,数据容量和类型都有限 3.Flash LocalConnection, 对象可在一个 SWF 文件中或多个 SWF 文件间进行通信, 只要 在同一客户端就行,跨应用程序, 可以跨域。...

    javascript常用对象梳理

    熟练掌握window对象的status、location、name、self、opener属性的使用 Window对象是客户端javascript最高层对象之一,只要打开浏览器窗口,不管该窗口中是否有打开的网页,当遇到BODY、FRAMESET或FRAME元素时,...

    javascript使用window.name解决跨域问题第1/2页

    window.name 的美妙之处:name 值在不同的页面(甚至不同域名)加载后依旧存在,并且可以支持非常长的 name 值(2MB)。

    javascript关于open.window子页面执行完成后刷新父页面的问题分析

    本文实例分析了javascript关于open.window子页面执行完成后刷新父页面的方法。分享给大家供大家参考。具体分析如下: 主页面: &lt;input id=btnAdd type=button onclick=openWin(); value=添加 /&gt; 在js中有如下...

    JavaScript笔记.doc

    2、使用地址对象:location.href 22 3、历史对象: 22 4、从URL串中获取信息: 22 5、图像映像前的确认消息: 23 6、使用cookie: 23 7、改变状态栏文本: 23 九、将javascript和java连接起来 24 1、在javascript中...

    window.open不被拦截的简单实现代码(推荐)

    window.open是javascript函数,该函数的作用是打开一个新窗口或这改变原来的窗口,如果你直接在js中调用window.open()函数去打开一个新窗口,浏览器会拦截你,那么如何避免呢,感兴趣的朋友可以了解下本文或许对你学习...

    详解HTML5 window.postMessage与跨域

    本篇将详细阐述HTML5 window.postMessage,借助postMessage API,文档间可以以安全可控的方式实现跨域通信,第三方JavaScript代码也可以与iframe内加载的外部文档进行通信。 HTML5 window.postMessage API ...

    107个常用Javascript语句.doc

    4.一个浏览器窗口中的DOM顺序是:window- &gt;(navigator,screen,history,location,document) 5.得到表单中元素的名称和值:document.getElementById( "表单中元素的ID號 ").name(或value) 6.一个小写转大写的JS: ...

    javascript Window及document对象详细整理

    一、Window对象 ————————————————– ——————- 对象属性 window //窗户自身 window.self //引用本窗户window=window.self window.name //为窗户命名 window.defaultStatus //设定窗户状态栏...

    java 常用开发代码

    window.location.href='index.jsp';&lt;/script&gt;"); ◆弹出对话框后在父窗体打开文件index.jsp out.println("&lt;script language='javascript'&gt;alert('弹出内容!');window.parent.location.href='index.jsp';&lt;/script&gt;...

    JS窗口大全----很全的哦

    //-----------按钮提示框----------// 删除" onclick="return confirm('Yes/No');); //-----------按钮提示...javaScript:window.location.reload();//返回当前页并刷新 。。。。。。。。。。。。。。。。。。。。

    JavaScript window.document的属性、方法和事件小结

    javascript中window.document的属性、方法和事件的总结,有需要的朋友可参考一下本文章。 属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的子节点列表(只读) dataType 返回此节点的数据类型 ...

    javascript 取Url参数和去掉字符串前后空格方法

    javascript 取Url参数和去掉字符串前后空格方法,非常实用

    基于jquery的浮动提示层

    本人原创,转载请注明。 本代码段基于jquery框架实现背景透明的浮动提示层,这个在做ajax方面时比较常用。... BUG修改,在closeFlLayer函数的修改为如下代码: ... window.location.href=window.location.href; }

    73种网页常用Javascript代码

    "&gt; 2、返回 &lt;form&gt;&lt;input type="button" value="返回上一步" onClick="history.back(-1)"&gt;&lt;/form&gt; 3、查看源码 查看源码" onClick="window.location="view-source:" +window.location.href"&gt; 4、禁止查看源码

Global site tag (gtag.js) - Google Analytics