在JavaScript開發(fā)中,我們經(jīng)常需要獲取當(dāng)前頁面的域名。比如在跨域請求中需要獲取目標(biāo)域名,或者根據(jù)不同的域名來做不同的處理。那么如何通過JavaScript來讀取當(dāng)前頁面的域名呢?
在下面的例子中,我們將展示一些不同的方法來讀取當(dāng)前頁面的域名。這些方法適用于所有現(xiàn)代瀏覽器。
1.使用location對象的屬性
<code> var domain = location.hostname; console.log(domain); </code>
上面的代碼中,我們使用了location對象的屬性hostname來獲取當(dāng)前頁面的域名。該屬性返回的是完整的域名,包括了子域名和主域名。
2.解析URL
<code> var url = window.location.href; var parser = document.createElement('a'); parser.href = url; var domain = parser.hostname; console.log(domain); </code>
上面的代碼中,我們先獲取當(dāng)前頁面的URL,然后通過創(chuàng)建一個(gè)新的a元素,將該URL賦值給它的href屬性。這樣就可以通過訪問新的a元素的hostname屬性來獲取當(dāng)前頁面的域名。
3.使用正則表達(dá)式解析URL
<code> var url = window.location.href; var domain = url.match(/:\/\/(.[^/]+)/)[1]; console.log(domain); </code>
上面的代碼中,我們使用正則表達(dá)式來解析URL,然后通過返回結(jié)果的第一個(gè)子串來獲取當(dāng)前頁面的域名。該方法只適用于廣義URL。
4.使用document.domain屬性
<code> var domain = document.domain; console.log(domain); </code>
上面的代碼中,我們使用document對象的domain屬性來獲取當(dāng)前頁面的域名。該屬性只適用于同一個(gè)主域名下的頁面。
總之,以上幾種方式都可以用來獲取當(dāng)前頁面的域名,開發(fā)者可以根據(jù)自己的需要來選擇使用哪種方式。