jQuery를 사용하고 있습니다. 현재 URL의 경로를 가져와 변수에 할당하려면 어떻게 해야 합니까?
예시 URL:
http://localhost/menuname.de?foo=bar&number=0
질문자 :venkatachalam
jQuery를 사용하고 있습니다. 현재 URL의 경로를 가져와 변수에 할당하려면 어떻게 해야 합니까?
예시 URL:
http://localhost/menuname.de?foo=bar&number=0
경로를 얻으려면 다음을 사용할 수 있습니다.
var pathname = window.location.pathname; // Returns path only (/path/example.html) var url = window.location.href; // Returns full URL (https://example.com/path/example.html) var origin = window.location.origin; // Returns base URL (https://example.com)
순수한 jQuery 스타일:
$(location).attr('href');
위치 개체에는 호스트, 해시, 프로토콜 및 경로 이름과 같은 다른 속성도 있습니다.
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> <script> $(location).attr('href'); // http://www.refulz.com:8082/index.php#tab2 $(location).attr('pathname'); // index.php </script> </html>
URL에 해시 매개변수가 필요한 경우 window.location.href
가 더 나은 선택일 수 있습니다.
window.location.pathname => /search window.location.href => www.website.com/search#race_type=1
window.location
객체를 사용하고 싶을 것입니다.
JavaScript에 이 함수를 추가하기만 하면 현재 경로의 절대 경로가 반환됩니다.
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은 자바스크립트의 객체입니다. 다음 데이터를 반환합니다.
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.location
또는 document.location
통해 액세스할 수 있는 관련 매개변수/메서드를 지원합니다. 그러나 Internet Explorer(6,7)의 다른 버전은 이러한 메서드를 동일한 방식으로 지원하지 않으므로( window.location.href
? window.location.replace()
지원되지 않음) 조건부로 작성하여 다르게 액세스해야 합니다. Internet Explorer를 손에 들고 항상 코드를 작성하십시오.
따라서 jQuery를 사용할 수 있고 로드한 경우 이러한 문제를 해결하므로 다른 사람들이 언급한 것처럼 jQuery(위치)를 사용하는 것이 좋습니다. 그러나 예를 들어 JavaScript를 통한 클라이언트 측 지리 위치 리디렉션(즉, Google Maps API 및 위치 개체 메서드 사용)을 수행하는 경우 전체 jQuery 라이브러리를 로드하고 다음과 같은 조건부 코드를 작성하고 싶지 않을 수 있습니다. Internet Explorer/Firefox/etc의 모든 버전을 확인합니다.
Internet Explorer는 프론트 엔드 코딩 고양이를 불행하게 만들지만 jQuery는 우유 한 접시입니다.
호스트 이름에만 다음을 사용합니다.
window.location.hostname
자바 스크립트는 브라우저의 주소 표시줄에 표시되는 현재 URL을 검색하는 많은 방법을 제공합니다.
테스트 URL:
http:// stackoverflow.com/questions/5515310/get-current-url-with-jquery/32942762 ? rq=1&page=2&tab=active&answertab=votes # 32942762
resourceAddress.hash(); console.log('URL Object ', webAddress); console.log('Parameters ', param_values);
기능:
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(); }
EX: 기본 포트 번호 사용
<protocol>//<hostname>:<port>/<pathname><search><hash> https://en.wikipedia.org:443/wiki/Pretty_Good_Privacy http://stackoverflow.com:80/
도메인 이름은 DNS(Domain Name System) 트리의 규칙과 절차에 따라 등록하는 것입니다. 주소 지정을 위해 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
매개변수에 Epoch ?date=1467708674
사용하십시오.
var epochDate = 1467708674; var date = new Date( epochDate );
사용자 이름:암호가 있는 인증 URL, 사용자 이름/암호에 @ 기호가 포함된 경우
처럼:
Username = `my_email@gmail` Password = `Yash@777`
@
를 %40
으로 URL 인코딩해야 합니다. 나타내 다...
http://my_email%40gmail.com:Yash%40777@www.my_site.com
encodeURI()
(vs) encodeURIComponent()
예제
var testURL = "http:my_email@gmail:Yash777@//stackoverflow.com?tab=active&page=1#32942762"; var Uri = "/:@?&=,#", UriComponent = "$;+", Unescaped = "(-_.!~*')"; // Fixed var encodeURI_Str = encodeURI(Uri) +' '+ encodeURI( UriComponent ) +' '+ encodeURI(Unescaped); var encodeURIComponent_Str = encodeURIComponent( Uri ) +' '+ encodeURIComponent( UriComponent ) +' '+ encodeURIComponent( Unescaped ); console.log(encodeURI_Str, '\n', encodeURIComponent_Str); /* /:@?&=,# +$; (-_.!~*') %2F%3A%40%3F%26%3D%2C%23 %2B%24%3B (-_.!~*') */
이것은 또한 작동합니다:
var currentURL = window.location.href;
window.location을 기록하고 URL 사용에 대한 모든 옵션을 볼 수 있습니다.
window.location.origin
전체 경로 사용:
window.location.href
위치도 있습니다. _ _
.host .hostname .protocol .pathname
JavaScript/jQuery를 사용하여 현재 페이지의 절대 URL 을 반환합니다.
document.URL
$("*").context.baseURI
location.href
GET 변수를 제거하기 위해 이것을 가지고 있습니다.
var loc = window.location; var currentURL = loc.protocol + '//' + loc.host + loc.pathname;
URL 과 해시태그를 연결하고 싶은 사람이 있다면 두 가지 기능을 결합하세요.
var pathname = window.location.pathname + document.location.hash;
js 자체를 사용하여 경로를 간단히 얻을 수 있습니다. window.location
또는 location
은 현재 URL의 객체를 제공합니다.
console.log("Origin - ",location.origin); console.log("Entire URL - ",location.href); console.log("Path Beyond URL - ",location.pathname);
var currenturl = jQuery(location).attr('href');
iframe 내에서 상위 창의 URL을 가져오려면:
$(window.parent.location).attr('href');
주의: 동일한 도메인에서만 작동
다음은 사용할 수 있는 유용한 코드 조각의 예입니다. 일부 예는 표준 JavaScript 함수를 사용하며 jQuery에만 해당되지 않습니다.
다음은 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 이 제공됩니다.
var path = location.pathname
은 현재 URL의 경로를 반환합니다(jQuery는 필요하지 않음). window.location
사용은 선택 사항입니다.
모든 브라우저는 Javascript 창 개체를 지원합니다. 브라우저의 창을 정의합니다.
전역 개체와 함수는 자동으로 창 개체의 일부가 됩니다.
모든 전역 변수는 창 개체 속성이고 모든 전역 함수는 메서드입니다.
전체 HTML 문서도 창 속성입니다.
따라서 window.location 객체를 사용하여 모든 url 관련 속성을 가져올 수 있습니다.
자바스크립트
console.log(window.location.host); //returns host console.log(window.location.hostname); //returns hostname console.log(window.location.pathname); //return path console.log(window.location.href); //returns full current url console.log(window.location.port); //returns the port console.log(window.location.protocol) //returns the protocol
제이쿼리
console.log("host = "+$(location).attr('host')); console.log("hostname = "+$(location).attr('hostname')); console.log("pathname = "+$(location).attr('pathname')); console.log("href = "+$(location).attr('href')); console.log("port = "+$(location).attr('port')); console.log("protocol = "+$(location).attr('protocol'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
window.location 은 현재 URL 을 제공하고 원하는 것을 추출할 수 있습니다...
루트 사이트의 경로를 얻으려면 다음을 사용하십시오.
$(location).attr('href').replace($(location).attr('pathname'),'');
purl.js를 참조하십시오. 이것은 정말 도움이 될 것이며 jQuery에 따라 사용할 수도 있습니다. 다음과 같이 사용하십시오.
$.url().param("yourparam");
자주 사용되는 상위 3개는 다음과 같습니다.
1. window.location.hostname 2. window.location.href 3. window.location.pathname
var newURL = window.location.protocol + "//" + window.location.host + "/" + window.location.pathname;
// get current URL $(location).attr('href'); var pathname = window.location.pathname; alert(window.location);
pageContext.request.contextPath
사용하여 현재 URL 경로에 액세스할 수 있습니다. 아약스 호출을 수행하려면,
url = "${pageContext.request.contextPath}" + "/controller/path"
예: http://stackoverflow.com/questions/406192
페이지에서 이것은 http://stackoverflow.com/controller/path를 제공합니다 http://stackoverflow.com/controller/path
출처 : http:www.stackoverflow.com/questions/406192/get-current-url-with-jquery
NPM vs. Bower vs. Browserify vs. Gulp vs. Grunt vs. Webpack (0) | 2021.12.08 |
---|---|
폴더 및 하위 폴더/파일에 대한 권한을 한 번에 변경하는 방법 (0) | 2021.12.08 |
게임 2048에 대한 최적의 알고리즘은 무엇입니까? (0) | 2021.12.08 |
.gitignore가 몇 개의 파일을 제외한 모든 것을 무시하도록 합니다. (0) | 2021.12.08 |
JavaScript 배열의 모든 고유 값 가져오기(중복 제거) (0) | 2021.12.08 |