JavaScriptで現在のURLを取得しますか?


3004

WebサイトのURLを取得するだけです。リンクから取得したURLではありません。ページの読み込み時に、現在のWebサイトの完全なURLを取得し、それを変数として設定して、好きなように処理できるようにする必要があります。



回答:


3686

使用する:

window.location.href 

コメントに記載されているように、以下の行は機能しますが、Firefoxにはバグがあります。

document.URL;

タイプDOMStringのURL、readonlyを参照してください。


142
Firefox 12では、document.URLプロパティはwindow.locationアンカー(#)の後に更新されませんが、更新されwindow.location.hrefます。ここにライブデモをまとめました:jsfiddle.net/PxgKy他のバージョンのFirefoxはテストしていません。document.URLChrome 20とIE9では、使用に関する問題は見つかりませんでした。
Telmo Marques

88
また、あなたは、ホストと明確な場所を取得することができます:window.location.hostwindow.location.href.toString().split(window.location.host)[1]
アリyouhannaei

8
そして、document.baseURIそれについては何ですか。基本的に、URL 、、document.baseURIおよびを取得するには3つの方法があります。document.URLlocation
Muhammad Umer 2013

20
-1:フレーム、イメージ、またはフォームがあるname="URL"場合、このプロパティはdocumentオブジェクト上でシャドウされ、コードが壊れます。その場合、document.URL代わりにDOMノードを参照します。のように、グローバルオブジェクトのプロパティを使用することをお勧めしますwindow.location.href
ロイティンカー、

13
勝利のための「window.location.href」
GabrielBB 14

662

URL情報アクセス

JavaScriptは、ブラウザのアドレスバーに表示される現在のURLを取得および変更するための多くのメソッドを提供します。これらすべてのメソッドは、LocationオブジェクトのプロパティであるWindowオブジェクトを使用します。Location次のようにして、現在のURLを持つ新しいオブジェクトを作成できます。

var currentLocation = window.location;

基本的なURL構造

<protocol>//<hostname>:<port>/<pathname><search><hash>
  • protocol:インターネット上のリソースにアクセスするために使用されるプロトコル名を指定します。(HTTP(SSLなし)またはHTTPS(SSLあり))

  • hostname:ホスト名は、リソースを所有するホストを指定します。たとえば、www.stackoverflow.com。サーバーは、ホストの名前を使用してサービスを提供します。

  • ポート:サーバーに到着したときにインターネットまたは他のネットワークメッセージが転送される特定のプロセスを認識するために使用されるポート番号。

  • パス名:パスは、Webクライアントがアクセスするホスト内の特定のリソースに関する情報を提供します。たとえば、/index.html

  • 検索:クエリ文字列はパスコンポーネントに従い、リソースが何らかの目的で(たとえば、検索のパラメーターとして、または処理されるデータとして)利用できる情報の文字列を提供します。

  • hash: URLのアンカー部分。ハッシュ記号(#)が含まれます。

これらのLocationオブジェクトプロパティを使用すると、これらすべてのURLコンポーネントと、それらが設定または返すことができるものにアクセスできます。

  • href -URL全体
  • protocol -URLのプロトコル
  • host -URLのホスト名とポート
  • hostname -URLのホスト名
  • port-サーバーがURLに使用するポート番号
  • pathname -URLのパス名
  • search -URLのクエリ部分
  • ハッシュ-URLのアンカー部分

答えが出たらいいのに…


7
それらはの「メソッド」window.locationではなく、プロパティであり、ここに例があります var stringPathName = window.location.pathname
Peter Krauss

@FabioC。で削除できsubstringます。ただし、リダイレクトを使用しdocument.location = "/page.html";てルートページにリダイレクトする場合に役立つことがありますpage.html
FindOut_Quran

1
これは、述べられた質問だけではありません。実際、おそらく1か月ほど前にURL文字列から1つ以上の特定の部分を取得するための適切な方法を検索しました(おそらく、取得しようとしている現在のページだったと思います)。 -ターゲット、彼らの答えはこの目的ほど有用で簡単ではありませんでした。
Panzercrisis

1
ただし、簡単な提案があります。上記の基本的なURL構造には、のスポットがありsearchますが、以下の説明のリストでは、と呼ばれていqueryます。多分それらは和解することができるか、またはさらに説明を追加することができます。
Panzercrisis

1
「クエリ」ではなく「検索」と呼ばれます
Apollo Data


264

現在のページのURLを取得します。

window.location.href

3
これは、ドキュメントではなくウィンドウの場所であることに注意してください。
ガンボ

16
それは同じことです。現在の完全なURLはドキュメントパス(外部アドレス)を参照します。
Zanoni

2
document.urlのように標準化されていますか?(私はw3cドキュメントのようなものを意味します)
チェンドラル

document仕様で定義されているドキュメントツリーのルートです。window一般的に同等ですが、一部の奇妙な状況ではない場合があります。
broinjc '19

57

OK、現在のページの完全なURLを取得することは、純粋なJavaScriptを使用することで簡単です。たとえば、このページで次のコードを試してください。

window.location.href;
// use it in the console of this page will return
// http://stackoverflow.com/questions/1034621/get-current-url-in-web-browser"

window.location.hrefプロパティは、現在のページのURLを返します。

document.getElementById("root").innerHTML = "The full URL of this page is:<br>" + window.location.href;
<!DOCTYPE html>
<html>

<body>
  <h2>JavaScript</h2>
  <h3>The window.location.href</h3>
  <p id="root"></p>
</body>

</html>

これらについても触れておきます。

  • 相対パスが必要な場合は、単にwindow.location.pathname;

  • ホスト名を取得したい場合は、を使用できますwindow.location.hostname

  • プロトコルを個別に取得する必要がある場合は、 window.location.protocol

    • また、ページにhashタグがある場合は、次のように取得できますwindow.location.hash

したがってwindow.location.href、すべてを一度に処理します...基本的に:

window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.hash === window.location.href;
    //true

また使用 window、すでにウィンドウスコープ内にある場合は必要はありません...

したがって、その場合は、以下を使用できます。

location.protocol

location.hostname

location.pathname

location.hash

location.href

JavaScriptで現在のURLを取得する


window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.hash === window.location.href; 常に正しいとは限りません!window.location.pathnameにGETパラメータがありません。
AssassiN

40

パスを取得するには、以下を使用できます。

console.log('document.location', document.location.href);
console.log('location.pathname',  window.location.pathname); // Returns path only
console.log('location.href', window.location.href); // Returns full URL


35

開発者ツールを開き、コンソールに次のように入力してEnterキーを押します。

window.location

例:以下は、現在のページの結果のスクリーンショットです。

ここに画像の説明を入力してください

ここから必要なものを入手してください。:)


29

使用:window.location.href

上述したように、document.URL 更新されないときの更新をwindow.locationMDNを参照してください。


21
  • window.location.href完全なURLを取得するために使用します。
  • window.location.pathnameホストを離れるURLを取得するために使用します。

4
window.location.pathnameにクエリとハッシュフラグメントが含まれていない
OMGPOP


10
var currentPageUrlIs = "";
if (typeof this.href != "undefined") {
       currentPageUrlIs = this.href.toString().toLowerCase(); 
}else{ 
       currentPageUrlIs = document.location.toString().toLowerCase();
}

上記のコードは誰かを助けることもできます


2
実際に変更するURLに.toLowerCase()を適用しました。一部のサーバーでは大文字と小文字が区別されます(Linuxなど)
AnthonyVO

冗長にwindow.hrefを使用する必要があります。このコードは、この===ウィンドウのコンテキストでのみ機能しますが、特にこのソリューションを貼り付けた場合は、常にそうであるとは限りません。
デッドボーイ、2015年

大文字と小文字が区別されるのは「一部の」サーバーではありません。MOSTサーバーです。したがって、AnthonyVOに同意します。URLの大文字と小文字を変更することは非常に悪い考えです。
mivk 2015年

URLを破壊しないようにして、URLをtoLowerCase()することはできません!!! urlがhttp://www.server.com/path/to/Script.php?option=A1B2C3で、ファイルシステムで大文字と小文字が区別される場合(Linux / Unix)、必ずしもScript.phpとscript.phpは同じではありません。(Windowsの、いくつかのMacintosh)を大文字と小文字を区別しない場合でも、そして、?option=A1B2C3同じではない?option=a1b2c3としても、または?Option=A1B2C3。サーバーのみが大文字と小文字を区別しません。www.server.comまたはwww.SeRvEr.cOmは同じです。
FrancescoMM

8

クイックリファレンスのための結果の追加

window.location;

 Location {href: "/programming/1034621/get-the-current-url-with-javascript",
 ancestorOrigins: DOMStringList,
 origin: "https://stackoverflow.com",
 replace: ƒ, assign: ƒ, …}

document.location

  Location {href: "/programming/1034621/get-the-current-url-with-javascript", 
ancestorOrigins: DOMStringList,
 origin: "https://stackoverflow.com",
 replace: ƒ, assign: ƒ
, …}

window.location.pathname

"/questions/1034621/get-the-current-url-with-javascript"

window.location.href

"/programming/1034621/get-the-current-url-with-javascript"

location.hostname

"stackoverflow.com"

7

クエリ文字列を含む完全なURLの場合:

document.location.toString().toLowerCase();

ホストURLの場合:

window.location

11
実際に変更するURLに.toLowerCase()を適用しました。一部のサーバーでは大文字と小文字が区別されます(Linuxなど)
AnthonyVO

すでに述べたように、URLを破壊しないようにして、URLをtoLowerCase()することはできません!!! urlがserver.com/path/to/Script.php?option=A1B2C3の場合、ファイルシステムで大文字と小文字が区別される場合(Linux / Unix)、必ずしもScript.phpとscript.phpは同じではありません。また、大文字と小文字を区別しなくても(Windows、一部のMac OS)、? option = A1B2C3は?option = a1b2c3と同じではなく、?Option = A1B2C3とも同じではありません。サーバーのみが大文字と小文字を区別しません。www.server.comまたはwww.SeRvEr.cOmは同じです。
FrancescoMM

これを指摘してくれたAnthonyVOに感謝します。document.location.toString()のみを使用して完全なURLを取得できます。toLowerCase()は、スクリプトのindexOfのように比較するためのものです。
Syed Nasir Abbas、

4

jstlでは、を使用して現在のURLパスにアクセスできますpageContext.request.contextPath。Ajax呼び出しを行う場合は、次のURLを使用します。

url = "${pageContext.request.contextPath}" + "/controller/path"

例:ページの場合は、http://stackoverflow.com/posts/36577223このようになりますhttp://stackoverflow.com/controller/path


4

現在の位置オブジェクトを取得する方法はwindow.locationです。

これをdocument.location、もともと現在のURLのみを文字列として返していたと比較してください。混乱を避けるために、document.locationに置き換えられましたdocument.URL

また、最新のブラウザはすべてに対応document.locationしていwindow.locationます。

実際には、ブラウザ間の安全のために、window.locationではなくを使用する必要がありますdocument.location



3

Nikhil Agrawalの答えは素晴らしいです。ここに小さな例を追加するだけで、コンソールでさまざまなコンポーネントの動作を確認できます。

ここに画像の説明を入力してください

パスやクエリパラメータなしでベースURLが必要な場合(たとえば、開発/ステージングと本番サーバーの両方で動作するようにAJAXリクエストを実行する場合)window.location.originは、プロトコルとオプションのポート(Django開発では、ホスト名などを使用した場合にそれを壊す非標準ポートがあります)



0

現在のページの完全なリンクを取得できます。location.href 現在のコントローラーのリンクを取得するには、次を使用します。

location.href.substring(0, location.href.lastIndexOf('/'));


0

idを持つ特定のリンクを参照している場合、このコードが役立ちます。

$(".disapprove").click(function(){
    var id = $(this).attr("id");

    $.ajax({
        url: "<?php echo base_url('index.php/sample/page/"+id+"')?>",
        type: "post",
        success:function()
        {
            alert("The Request has been Disapproved");
            window.location.replace("http://localhost/sample/page/"+id+"");
        }
    });
});

ここではajaxを使用してIDを送信し、window.location.replaceを使用してページをリダイレクトしています。上記のように属性id=""を追加するだけです。



-2

まず、ページが完全に読み込まれているかどうかを確認します

browser,window.location.toString();

window.location.href

次に、URL、URL変数を取り、コンソールに出力する関数を呼び出します。

$(window).load(function(){
   var url = window.location.href.toString();
   var URL = document.URL;
   var wayThreeUsingJQuery = $(location).attr('href');
   console.log(url);
   console.log(URL);
   console.log(wayThreeUsingJQuery );
});
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.