現在のドキュメントのURLをJavascriptで取得するきちんとした方法を探しています。
Location.hrefを使用して現在のURLを取得し、正規表現を使用してクリーンアップできることは知っていますが、迷惑メールを取り除くためのより良い/クリーンなソリューションがありますか?
window.location
にはhref
以外の多くのパラメーターがあります。完全なリファレンスはこちら: https://developer.mozilla.org/en/DOM/window.location
あなたがスターターとして探しているのは、window.location.hostname
でしょう:
「ホスト名(ポート番号または角括弧なし)。」
サンプルURL http://[www.example.com]:80/search?q=devmo#test
から、ホスト名はwww.example.com
になります。
パスも含めて、http://プロトコルを強制する場合は、次を試してください。
'http://' + window.location.hostname + window.location.pathname;
サイドノートとして、window.locationとは別のURLから同じパラメーターを取得する巧妙なトリックは、空のアンカーを作成することです:
var a = document.createElement('a');
a.href = 'http://www.example.com:80/search?q=devmo#test';
console.log('http://' + a.hostname + a.pathname);
与えられた答えはどれも、プロトコルがOPタイトルのようにhttpまたはhttpsであるという事実に対処していません。これに対応するために、次のことをお勧めします。
document.location.protocol +"//"+ document.location.hostname + document.location.pathname
Locationオブジェクト 必要なものを取得しました
window.location.hostname + window.location.pathname
あなたが持っている document.location
オブジェクト、したがって:
var oLoc = document.location,
sUrl = oLoc.protocol + oLoc.hostname;
// or "http://" + oLoc.hostname
これらの置換関数を使用して、ハッシュおよび検索引数を削除し、httpsをhttpに正規化できます。
url = url.replace(/#[^#]*$/, "").replace(/\?[^\?]*$/, "").replace(/^https:/, "http:");
または、本当に必要なのがドメインとパスだけである場合は、これを使用できます:
window.location.hostname + window.location.pathname
このスニペットを試してください:
if (!window.location.Origin){
// For IE
window.location.Origin = window.location.protocol + "//" + (window.location.port ? ':' + window.location.port : '');
}
url = window.location.Origin + window.location.pathname;
document.write('Origin url: ' + url);
これ ページは、おそらくwindow.location.Host
実際に興味のある部分を取得します。しかし、私はそれをテストしていません。
試してください:
window.location.hostname;