reload() 方法用於重新加載當前文檔。
如果該方法沒有規定參數,或者參數是 false,它就會用 HTTP 頭 If-Modified-Since 來檢測服務器上的文檔是否已改變。如果文檔已改變,reload() 會再次下載該文檔。如果文檔未改變,則該方法將從緩存中裝載文檔。這與用戶單擊瀏覽器的刷新按鈕的效果是完全一樣的。
我們都知道客戶端瀏覽器是有緩存的,里面存放之前訪問過的一些網頁文件。
其實緩存里存儲的不只是網頁文件,還有服務器發過來的該文件的最后服務器修改時間。
If-Modified-Since是標准的HTTP請求頭標簽,在發送HTTP請求時,把瀏覽器端緩存頁面的最后修改時 間一起發到服務器去,服務器會把這個時間與服務器上實際文件的最后修改時間進行比較。
如果時間一致,那么返回HTTP狀態碼304(不返回文件內容),客戶端接到之后,就直接把本地緩存文 件顯示到瀏覽器中。
如果時間不一致,就返回HTTP狀態碼200和新的文件內容,客戶端接到之后,會丟棄舊文件,把新文件 緩存起來,並顯示到瀏覽器中。
window.location.Reload()應該是刷新.【相當於 按頁面刷新按鈕】
(如果有數據提交的話,會提示是否提交的(是和否選項))
window.location.href=window.location.href;
是定向url提交數據
當使用刷新時
按刷新按鈕的時候(執行:onclick="location.reload();"),總是出現討厭的提示下面的窗口:
“不重新發送信息,則無法刷新網頁。
請單擊“重試”再次發送信息,或單擊“取消”返回正查看的頁。”
可以用location.href=location.href;替代
其實在網上都能找到,我只是總結一下,方便自己查找使用
示例
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。
location.hash
要使用 JS 定位錨點,完全可以使用 window.hash 配合元素 ID 完成。比如快速定位到頁面的某條評論,則直接使用如下代碼即可:
window.location.hash = "#comment-5981";
另外 Twitter、Facebook、Google 等已經開始大量使用 #! 這種形式的 hash 方法處理異步交互頁面的 URL 可回溯功能。
location.search
如果有這樣一個 URL 地址:
http://www.google.com.hk/search?hl=zh-CN&source=hp&biw=1400&bih=935&q=%E8%8A%92%E6%9E%9C%E5%B0%8F%E7%AB%99&aq=f&aqi=&aql=&oq=
如何利用 JS 腳本捕獲頁面 GET 方式請求的參數?其實直接使用 window.location.search 獲得,然后通過 split 方法結合循環遍歷自由組織數據格式。
另外,如果根據用戶的搜索條件刷新頁面,只需直接設置 window.location.search 即可。
windows.open("URL","窗口名稱","窗口外觀設定");
<A href="javascript:window.open('webpage.asp','_self')"> 點擊這里 </A>
<a onclick="window.open('webpage.asp','_self');void 0" href="#"> 點擊這里 </a>
於Window.open的參數小結(參書改編) 先看一個例子:
[javascipt:]window.open("Webpage.asp?",Derek,"height=100,width=100,status=yes,toolbar=yes, menubar=no,location=no");
此語句打開一個新窗口,頁面為webpage.asp,參數為var,名字為Derek,高為100,寬為100,顯示狀態欄和工具條,不顯示菜單和地址。
具體總結的各個屬性參數如下:
window = object.open([URL ][, name ][, features ][, replace]]]])
URL:新窗口的URL地址
name:新窗口的名稱,可以為空
featurse:屬性控制字符串,在此控制窗口的各種屬性,屬性之間以逗號隔開。
fullscreen= { yes/no/1/0 } 是否全屏,默認no
channelmode= { yes/no/1/0 } 是否顯示頻道欄,默認no
toolbar= { yes/no/1/0 } 是否顯示工具條,默認no
location= { yes/no/1/0 } 是否顯示地址欄,默認no
directories = { yes/no/1/0 } 是否顯示轉向按鈕,默認no
status= { yes/no/1/0 } 是否顯示窗口狀態條,默認no
menubar= { yes/no/1/0 } 是否顯示菜單,默認no
scrollbars= { yes/no/1/0 } 是否顯示滾動條,默認yes
resizable= { yes/no/1/0 } 是否窗口可調整大小,默認no
width=number 窗口寬度(像素單位)
height=number 窗口高度(像素單位)
top=number 窗口離屏幕頂部距離(像素單位)
left=number 窗口離屏幕左邊距離(像素單位)
關於本題中,第二個參數的詳解:
name可以為:
_blank 表示新開一個窗口,
_parent表示父框架窗口,
_self表示覆蓋該窗口,
xxx表示覆蓋名字為xxx的窗口
(每個窗口都可以給他命名)
不能為省略,可以為空!