在JavaScript中获取当前url?

我正在使用jQuery。 如何获取当前URL的path并将其分配给variables?

示例url:

http://localhost/menuname.de?foo=bar&number=0 

要获得path,您可以使用:

 var pathname = window.location.pathname; // Returns path only var url = window.location.href; // Returns full URL 

在纯粹的jQuery风格:

 $(location).attr('href'); 

位置对象还具有其他属性,如主机,散列,协议和path名。

 http://www.refulz.com:8082/index.php#tab2?foo=789 Property Result ------------------------------------------ host www.refulz.com:8082 hostname www.refulz.com port 8082 protocol http: pathname index.php href http://www.refulz.com:8082/index.php#tab2 hash #tab2 search ?foo=789 var x = $(location).attr('<property>'); 

这只会在你有jQuery时才起作用。 例如:

 <html> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"> </script> $(location).attr('href'); // http://www.refulz.com:8082/index.php#tab2 $(location).attr('pathname'); // index.php </script> </html> 

如果你需要URL中存在的哈希参数, window.location.href可能是一个更好的select。

 window.location.pathname => /search window.location.href => www.website.com/search#race_type=1 

您将要使用JavaScript的内置window.location对象。

只需在JavaScript中添加此函数,它将返回当前path的绝对path。

 function getAbsolutePath() { var loc = window.location; var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/') + 1); return loc.href.substring(0, loc.href.length - ((loc.pathname + loc.search + loc.hash).length - pathName.length)); } 

我希望它适合你。

window.location是javascript中的一个对象。 它返回以下数据

 window.location.host #returns host window.location.hostname #returns hostname window.location.path #return path window.location.href #returns full current url window.location.port #returns the port window.location.protocol #returns the protocol 

在jQuery中,你可以使用

 $(location).attr('host'); #returns host $(location).attr('hostname'); #returns hostname $(location).attr('path'); #returns path $(location).attr('href'); #returns href $(location).attr('port'); #returns port $(location).attr('protocol'); #returns protocol 

这是比许多人想象的更复杂的问题。 多个浏览器支持通过window.locationdocument.location访问的内置JavaScript位置对象和相关的参数/方法。 但是,Internet Explorer(6,7)的不同版本不支持这些方法window.location.replace()不支持window.location.hrefwindow.location.replace() ),所以你必须通过写条件一直编码以手持Internet Explorer。

所以,如果你有jQuery的可用和加载,你可能会像其他人提到的那样使用jQuery(location),因为它解决了这些问题。 但是,如果您正在做一个示例 – 通过JavaScript进行一些客户端地理位置redirect(即使用Google Maps API和位置对象方法),那么您可能不希望加载整个jQuery库并编写条件代码检查每个版本的Internet Explorer / Firefox /等。

Internet Explorer使前端编码猫不高兴,但jQuery是一盘牛奶。

仅限主机名称,请使用:

 window.location.hostname 

这也将工作:

 var currentURL = window.location.href; 

您可以loggingwindow.location并查看所有选项,仅供URL使用:

 window.location.origin 

对于整个path使用:

 window.location.href 

还有位置。 _ _

 .host .hostname .protocol .pathname 

这将使用JavaScript / jQuery返回当前页面的绝对URL 。

  • document.URL

  • $("*").context.baseURI

  • location.href

如果有人想要连接URL和哈希标记,则结合两个函数:

 var pathname = window.location.pathname + document.location.hash; 

java-script提供了很多方法来检索浏览器地址栏中显示的当前URL。

testingurl: http://stackoverflow.com/questions/5515310/is-there-a-standard-function-to-check-for-null-undefined-or-blank-variables-in/32942762?rq=1&page=2&tab=active&answertab=votes#32942762 : http://stackoverflow.com/questions/5515310/is-there-a-standard-function-to-check-for-null-undefined-or-blank-variables-in/32942762?rq=1&page=2&tab=active&answertab=votes#32942762

 resourceAddress.hash(); console.log('URL Object ', webAddress); console.log('Parameters ', param_values); 

function:

 var webAddress = {}; var param_values = {}; var protocol = ''; var resourceAddress = { fullAddress : function () { var addressBar = window.location.href; if ( addressBar != '' && addressBar != 'undefined') { webAddress[ 'href' ] = addressBar; } }, protocol_identifier : function () { resourceAddress.fullAddress(); protocol = window.location.protocol.replace(':', ''); if ( protocol != '' && protocol != 'undefined') { webAddress[ 'protocol' ] = protocol; } }, domain : function () { resourceAddress.protocol_identifier(); var domain = window.location.hostname; if ( domain != '' && domain != 'undefined' && typeOfVar(domain) === 'string') { webAddress[ 'domain' ] = domain; var port = window.location.port; if ( (port == '' || port == 'undefined') && typeOfVar(port) === 'string') { if(protocol == 'http') port = '80'; if(protocol == 'https') port = '443'; } webAddress[ 'port' ] = port; } }, pathname : function () { resourceAddress.domain(); var resourcePath = window.location.pathname; if ( resourcePath != '' && resourcePath != 'undefined') { webAddress[ 'resourcePath' ] = resourcePath; } }, params : function () { resourceAddress.pathname(); var v_args = location.search.substring(1).split("&"); if ( v_args != '' && v_args != 'undefined') for (var i = 0; i < v_args.length; i++) { var pair = v_args[i].split("="); if ( typeOfVar( pair ) === 'array' ) { param_values[ decodeURIComponent( pair[0] ) ] = decodeURIComponent( pair[1] ); } } webAddress[ 'params' ] = param_values; }, hash : function () { resourceAddress.params(); var fragment = window.location.hash.substring(1); if ( fragment != '' && fragment != 'undefined') webAddress[ 'hash' ] = fragment; } }; function typeOfVar (obj) { return {}.toString.call(obj).split(' ')[1].slice(0, -1).toLowerCase(); } 
  • 协议« Web浏览器按照WebHosted Applications和Web Client(浏览器)之间的通信规则使用Internet协议。 (http = 80 ,https(SSL)= 443 ,ftp = 21等)

EX:使用默认端口号

 <protocol>//<hostname>:<port>/<pathname><search><hash> https://en.wikipedia.org:443/wiki/Pretty_Good_Privacy http://stackoverflow.com:80/ 
  • (//)“主机”是在因特网上提供给终点(资源所在的机器)的名称。 http://www.stackoverflow.com – 应用程序的DNS IP地址(或)localhost:8080 – localhost

域名是您通过域名系统(DNS)树的规则和过程注册的域名。 用于pipe理您的域的IP地址用于寻址目的的DNS服务器。 在DNS服务器层次结构中,stackoverlfow.com的根名称是com。

 gTLDs - com « stackoverflow (OR) in « co « google 

本地系统,你必须保持在主机文件中不是PUBLIC的域。 localhost.yash.com « localhsot - subdomain( web-server ), yash.com - maindomain( Proxy-Server ). myLocalApplication.com 172.89.23.777 ). myLocalApplication.com 172.89.23.777

  • (/)“该path提供有关Web客户端要访问的主机内的特定资源的信息
  • (?)“一个可选的查询是传递由分隔符(&)分隔的一系列属性值对。
  • (#)“一个可选的片段通常是一个特定元素的id属性,Web浏览器将这个元素滚动到视图中。

如果参数有Epoch ?date=1467708674则使用。

 var epochDate = 1467708674; var date = new Date( epochDate ); 

url 在这里输入图像描述

我有这个去掉GETvariables。

 var loc = window.location; var currentURL = loc.protocol + '//' + loc.host + loc.pathname; 
  var currenturl = jQuery(location).attr('href'); 

从iframe中获取父窗口的URL:

 $(window.parent.location).attr('href'); 

NB:只适用于同一个域名

以下是可以使用的有用代码片段的示例 – 其中一些示例使用标准的JavaScript函数,并不特定于jQuery:

请参阅8个有用的jQuery片段URL和查询string

以下是使用jQuery和JavaScript获取当前URL的示例:

 $(document).ready(function() { //jQuery $(location).attr('href'); //Pure JavaScript var pathname = window.location.pathname; // To show it in an alert window alert(window.location); }); $.getJSON("idcheck.php?callback=?", { url:$(location).attr('href')}, function(json){ //alert(json.message); }); 

使用window.location.href 。 这会给你完整的url 。

window.location会给你当前的URL ,你可以从它提取任何你想要的…

如果你想获得根站点的path,使用这个:

 $(location).attr('href').replace($(location).attr('pathname'),''); 

var path = location.pathname返回jQuery中当前URL的path。 没有必要使用window

请参阅purl.js。 这将真正帮助,也可以使用,取决于jQuery。 像这样使用它:

 $.url().param("yourparam"); 

你可以简单地使用js自己的path, window.location或者location将给你当前URL的对象

 console.log("Origin - ",location.origin); console.log("Entire URL - ",location.href); console.log("Path Beyond URL - ",location.pathname); 

在jstl中,我们可以使用pageContext.request.contextPath来访问当前的urlpath,如果你想做一个ajax调用,

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

例如:在页面http://stackoverflow.com/questions/406192这将给http://stackoverflow.com/controller/path

 // get current URL $(location).attr('href'); var pathname = window.location.pathname; alert(window.location); 

var newURL = window.location.protocol +“//”+ window.location.host +“/”+ window.location.pathname;

非常常用的前三名是

 1. window.location.hostname 2. window.location.href 3. window.location.pathname