JavaScriptはどのように正確に現在のページURLのURL情報を取得しますか?

18613 ワード

WEB開発では、常にJavaScriptを使って現在のページのURL URL情報を取得しています.ここでは私の一部がURL情報を取得するための小さなまとめです.
次に、URLを例に挙げて、それぞれの構成部分を得る.http://i.cnblogs.com/EditPosts.aspx?opt=1.
1、window.location.href(URL全体を文字列として設定または取得)
var test = window.location.href;
alert(test);
戻り値:
http://i.cnblogs.com/EditPosts.aspx?opt=1
2、window.location.protocol(URLのプロトコル部分を設定または取得する)
var test = window.location.protocol;
alert(test);
戻り値:
http:
3、window.location.host(URLのホスト部分を設定または取得する)
var test = window.location.host;
alert(test);
戻り値:
i.cnblogs.com
4、window.location.port(URLに関連するポート番号を設定または取得する)
var test = window.location.port;
alert(test);
戻る:空の文字(デフォルトの80ポート(updateを使用すると:80を追加しても)、戻り値はデフォルトの80ではなく、空の文字です.
5、window.location.pathname(URLとの経路部分を設定または取得する(ファイルアドレスである)
var test = window.location.pathname;
alert(test);
戻り値:
/EditPosts.aspx
6、window.location.search(href属性のうち、疑問符の後に付いている部分を設定または取得する)
var test = window.location.search;
alert(test);
戻り値:
?opt=1
PS:クエリ(パラメータ)部分を取得し、動的言語に値を割り当てる以外にも、静的ページを与え、JavaScriptを使用して信頼すべきパラメータ値を得ることができる.
7、window.location.hash(href属性の井戸番号#の後のセグメントを設定または取得する)
var test = window.location.hash;
alert(test);
戻り値:
   (  URL   )
8、JavaScriptは、URLのパラメータ値を取得する.
(a)正則法
function getQueryString(name) {
  var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
  var r = window.location.search.substr(1).match(reg);
  if (r != null) {
    return unescape(r[2]);
  }
  return null;
}
//     :
alert(GetQueryString("   1"));
  
alert(GetQueryString("   2"));
  
alert(GetQueryString("   3"));
(b)スプリット分割法
function GetRequest() {
  var url = location.search; //  url "?"     
  var theRequest = new Object();
  if (url.indexOf("?") != -1) {
    var str = url.substr(1);
    strs = str.split("&");
    for(var i = 0; i < strs.length; i ++) {
      theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
    }
  }
  return theRequest;
}
var Request = new Object();
Request = GetRequest();<br>// var id=Request["id"]; 
// var   1,  2,  3,  N;
//   1 = Request['  1'];
//   2 = Request['  2'];
//   3 = Request['  3'];
//   N = Request['  N'];
(c)指定取
例えば、url:http://i.cnblogs.com/?j=js、パラメータjの値を取得したいです.以下の関数で呼び出すことができます.
function GetQueryString(name) { 
  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); 
  var r = window.location.search.substr(1).match(reg); //  url "?"           
  var context = ""; 
  if (r != null) 
     context = r[2]; 
  reg = null; 
  r = null; 
  return context == null || context == "" || context == "undefined" ? "" : context; 
}
alert(GetQueryString("j"));
(d)単一パラメータの取得方法
function GetRequest() {
  var url = location.search; //  url "?"     
  if (url.indexOf("?") != -1) {  //       
   var str = url.substr(1); //            0  ?              
   strs = str.split("=");  //        (                                &            )
   alert(strs[1]);     //          (               )
  }
}

転載:https://www.cnblogs.com/zhabayi/p/6419938.html