2.location 對象

location對象是一個很特別的對象:既是window對象的屬性,又是元素document對象的屬性。即:window.location === document.location

location對象的所有屬性:

  • hash —— 返回URL中的hash
  • host —— 返回服務(wù)器名稱和端口號
  • hostname —— 返回不帶端口號的服務(wù)器名稱
  • href —— 返回當(dāng)前加載頁面的完整URL(同location.toString()的返回值)
  • pathname —— 返回URL中的目錄和/或文件名
  • port —— 返回URL中指定的端口號
  • protocol —— 返回頁面使用的協(xié)議
  • search —— 返回UTL的查詢字符串。此字符串以問號開頭

1. 查詢字符串參數(shù)

location.search沒有辦法逐個訪問其中的每個查詢字符串參數(shù)。故可以創(chuàng)建這樣的函數(shù),以解析查詢字符串,然后返回包含所有參數(shù)的一個對象

function getQueryStringArgs(){
    // 假設(shè)url為 https://www.google.co.jp/?hl=zh-cn&gws_rd=cr&ei=MFDjV73sHYHa0ASqnLvoAw#hl=zh-cn&q=2016%E5%B9%B4github%E4%B8%8A%E5%8D%81%E5%A4%A7+%E5%89%8D%E7%AB%AF
    // 取得查詢字符串并去掉開頭的問號 —— location.search得到的是url問號后的字符串
    var qs = (location.search.length > 0 ? location.search.substring(1) : ""),
        args = {},  //保存數(shù)據(jù)的對象
        items = qs.length ? qs.split("&") : [], //取得每一項
        item = null,
        name = null,
        value = null,
        i = 0,      //在for循環(huán)中使用
        len = items.length;
    //逐個將每一項添加到args對象中
    for (i = 0; i < len; i++) {
        item = items[i].split("=");
        name = decodeURIComponent(item[0]);
        value = decodeURIComponent(item[1]);
        if (name.length) {
            args[name] = value;
        }     
    }
    return args;
}

2.位置操作

使用location對象可以通過很多方式來改變?yōu)g覽器的位置。最常用方式:使用assign()方法并為其傳遞一個URL

location.assign("http://www.baidu.com");

在改變?yōu)g覽器位置的方法中,最常用的是設(shè)置location.href屬性。此外,修改location對象的其他屬性(hash、search、jostname、pathname、port)也可改變當(dāng)前加載的頁面。

  • replace()方法 用戶不能回到前一個頁面
  • reload()方法 重新加載當(dāng)前顯示的頁面
location.reload();  //頁面會以最有效的方式重新加載(有可能從緩存中重新加載—)
location.reload(true)   //強(qiáng)制從服務(wù)器重新加載
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容