私が欲しいのはウェブサイトのURLを入手することだけです。リンクから取得したURLではありません。ページの読み込み時には、現在のWebサイトの完全なURLを取得し、それを変数として設定する必要があります。
つかいます:
window.location.href
コメントで述べたように、以下の行は機能しますが、Firefoxにはバグがあります。
document.URL;
DOMString型のURL、読み取り専用を参照してください。
URL情報へのアクセス
JavaScriptには、ブラウザのアドレスバーに表示されている現在のURLを取得および変更するためのさまざまな方法があります。これらのメソッドはすべて、Location
オブジェクトのプロパティであるWindow
オブジェクトを使用します。次のように現在のURLを持つ新しいLocation
オブジェクトを作成できます。
var currentLocation = window.location;
基本的なURLの構造
<protocol>//<hostname>:<port>/<pathname><search><hash>
protocol: インターネット上のリソースにアクセスするために使用されるプロトコル名を指定します。 (HTTP(SSLなし)またはHTTPS(SSLあり))
hostname: / Host nameは、リソースを所有するホストを指定します。たとえば、www.stackoverflow.com
です。サーバーはホストの名前を使用してサービスを提供します。
port: インターネットまたは他のネットワークメッセージがサーバーに到着したときに転送される特定のプロセスを認識するために使用されるポート番号。
pathname: Webクライアントがアクセスしたいホスト内の特定のリソースについての情報を提供します。たとえば、/index.html
です。
query: / query query文字列はパスコンポーネントの後に続き、リソースが何らかの目的で使用できる情報の文字列を提供します(たとえば、検索のパラメータとして、または処理するデータとして)。
hash: URLのアンカー部分。ハッシュ記号(#)を含みます。
これらのLocation
オブジェクトのプロパティを使えば、これらすべてのURLコンポーネントにアクセスでき、またそれらが設定または返すことができるものにアクセスできます。
私はあなたがあなたの答えを得たことを願っています..
現在のフレームに関連する locationオブジェクト への読み書きアクセスにはwindow.location
を使用してください。アドレスを読み取り専用の文字列として取得するだけの場合は、document.URL
を使用できます。これには、window.location.href
と同じ値を含める必要があります。
現在のページのURLを取得します。
window.location.href
パスを取得するには、次のものを使用できます。
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
window.location.href
を使ってください。
上記のように、document.URL
を更新するとき、window.location
は更新されません 。 _ mdn _ を参照してください。
現在のページの 完全な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.locatation.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
window.location.href
を使用してください。window.location.pathname
を使用してください。現在のURLの場所をハッシュタグで取得する を使って:
JavaScript:
// Using href
var URL = window.location.href;
// Using path
var URL = window.location.pathname;
jQuery :
$(location).attr('href');
var currentPageUrlIs = "";
if (typeof this.href != "undefined") {
currentPageUrlIs = this.href.toString().toLowerCase();
}else{
currentPageUrlIs = document.location.toString().toLowerCase();
}
上記のコードは誰かを助けることもできます
クイックリファレンスの結果を追加
window.location;
Location {href: "https://stackoverflow.com/questions/1034621/get-the-current-url-with-javascript",
ancestorOrigins: DOMStringList,
Origin: "https://stackoverflow.com",
replace: ƒ, assign: ƒ, …}
document.location
Location {href: "https://stackoverflow.com/questions/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
"https://stackoverflow.com/questions/1034621/get-the-current-url-with-javascript"
location.hostname
"stackoverflow.com"
クエリ文字列を含む完全なURLの場合:
document.location.toString().toLowerCase();
ホストURLの場合:
window.location
現在位置オブジェクトを取得する方法はwindow.location
です。
これをdocument.location
と比較してください。これはもともと現在のURLを文字列として返していました。混乱を避けるために、document.location
はdocument.URL
に置き換えられました。
そして、最近のブラウザはすべてdocument.location
をwindow.location
にマッピングしています。
実際には、ブラウザ間の安全のために、window.location
ではなくdocument.location
を使うべきです。
JstlではpageContext.request.contextPath
を使って現在のURLパスにアクセスできます。 Ajax呼び出しをしたい場合は、次のURLを使用してください。
url = "${pageContext.request.contextPath}" + "/controller/path"
例:http://stackoverflow.com/posts/36577223
ページの場合、これはhttp://stackoverflow.com/controller/path
を与えます。
location.Origin+location.pathname+location.search+location.hash;
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=""
を追加するだけです。
現在のURLをJavaScriptで取得する:
window.location.toString();
window.location.href
現在のページへのフルリンクはlocation.href
から取得できます。現在のコントローラへのリンクを取得するには、次のコマンドを使用します。
location.href.substring(0, location.href.lastIndexOf('/'));