南昌莫非:改變?yōu)g覽器位置常用方法location.href詳解介紹
使用location對象可以通過很多方式來改變?yōu)g覽器的位置。首先,也是最常用的方式,就是使用assign()方法并為其傳遞一個URL,如下所示:
location.assign(" http://lwdongzao.com");
這樣,就可以立即打開新URL并在瀏覽器的歷史記錄中生成一條記錄。如果是將location.href 或window.location設置為一個URL值,也會以該值調用assign()方法。例如,下列兩行代碼與顯式調用assign()方法的效果完全一樣:
window.location="http://www.ncmofei.com";
location.href="http://www.ncmofei.com";
在這些改變?yōu)g覽器位置的方法中,南昌網站建設公司技術人員認為最常用的是設置location.href屬性。
另外,修改location對象的其他屬性也可以改變當前加載的頁面。下面的例子展示了通過將hash.search.hostname.pathname和port屬性設置為新值來改變URL:
//假設初始URL為http://www.ncmofei.com/Abuout/
//將URL修改為http://www.ncmofei.com/Abuout/Temp
location.hash= "#Temp";
//將URL修改為http://www.ncmofei.com/Abuout/?q=javascript
location.search= "?q=j avascript";
//將URL修改為http://www.ncmofei.com/Abuout/
location.hostname="www.ncmofei.com";
//將URLL修改為http://www.ncmofei.com/mydir/
location.pathname="mydir";
//將URL修改為http://www.ncmofei.com:8080/Abuout/
location.port=8080;
每次修改location的屬性(hash除外),頁面都會以新URL重新加載。 當通過上述任何一種方式修改URL之后,瀏覽器的歷史記錄中就會生成一條新記錄,南昌網站設計公司技術人員提醒用戶通過單擊"后退"按鈕都會導航到前一個頁面。要禁用這種行為,可以使用replace()方法。這個方法只接受一個參數,即要導航到的URL;結果雖然會導致瀏覽器位置改變,但不會在歷史記錄中生成新記錄。在調用replace()方法之后,用戶不能回到前一個頁面,來看下面的例子:
< /head>
Enjoy this page for a second, because you won't be coming back here.
< /body>
如果將這個頁面加載到瀏覽器中,瀏覽器就會在1秒鐘后重新定向到www.ncmofei.com。然后,"后退"按鈕將處于禁用狀態(tài),如果不重新輸入完整的URL,則無法返回示例頁面。
與位置有關的最后一個方法是reload(),作用是重新加載當前顯示的頁面。如果調用reload()時不傳遞任何參數,頁面就會以最有效的方式重新加載。也就是說,如果頁面自上次請求以來并沒有改變過,頁面就會從瀏覽器緩存中重新加載。如果要強制從服務器重新加載,則需要像下面這樣為該方法傳遞參數true:
location.reload(); //重新加載(有可能從緩存中加載)
location.reload(true); //重新加載(從服務器重新加載)
位于reload()調用之后的代碼可能會也可能不會執(zhí)行,南昌網絡公司技術人員認為這要取決于網絡延遲或系統(tǒng)資源等因素。
為此,**將reload()放在代碼的最后一行。