2010-07-09 8 views
57

자바 스크립트에서 새 위치 개체를 만들 수 있습니까? 나는 문자열로 URL을 가지고 있으며, JavaScript의 다른 부분에 대한 액세스를 얻기 위해 이미 제공되는 JavaScript를 활용하고 싶습니다.자바 스크립트에서 새 위치 개체 만들기

여기 (I이 작동하지 않습니다) 알고 내가 무슨 말의 예 :

var url = new window.location("http://www.example.com/some/path?name=value#anchor"); 
var protocol = url.protocol; 
var hash = url.hash; 
// etc etc 

이런 일이 가능 아니면 기본적으로이 자신을 객체를 생성해야?

답변

111

글쎄, 당신은 예를 들어, URL 부분을 추출하는 앵커 요소를 사용할 수 있습니다

var url = document.createElement('a'); 
url.href = "http://www.example.com/some/path?name=value#anchor"; 
var protocol = url.protocol; 
var hash = url.hash; 

alert('protocol: ' + protocol); 
alert('hash: ' + hash); 
​ 

그것은 5.5도 IE의 모든 최신 브라우저에서 작동합니다.

예를 확인하십시오 here.

0

당신은 내가 지금 전체 코드가없는 ... 일치로 부품을 얻을 수있는 정규식에 구문 분석 할 수 있지만이 querydata 가져올 수 있습니다 :

var myUrl = window.location.href; 
var matches = myUrl.match(/([^\?]+)\?(.+)/); 
var queryData = matches[2]; 

일치 [ 0]은 전체 문자열입니다. matches (1)은 URL의 첫 번째 부분 (?까지)입니다 ... 원하는 경우 문자열 URL의 각 부분을 구문 분석 할 수있는 정규 표현식을 작성할 수 있습니다.

이미 많은 라이브러리 중 하나를 사용할 수도 있습니다.

8

당신은 앵커 요소를 사용 표준 URL object에 대한

var aLink = document.createElement("a"); 
aLink.href="http://www.example.com/foo/bar.html?q=123#asdf"; 
alert(aLink.pathname); 
16

방법의 힘을 활용할 수 있습니까?

var url = new URL("http://www.example.com/some/path?name=value#anchor"); 
var protocol = url.protocol; 
var hash = url.hash; 

경고 :이 인터페이스는 compatibility table을 확인하고 대상 브라우저에서 테스트를 해 주시기 바랍니다, 조금 새로운, 그래서.

관련 문제