문제

자바 스크립트에서 새 위치 객체를 만들 수 있습니까?나는 문자열로 URL을 가지고 있으며 JavaScript가 이미 다른 부분에 액세스 할 수 있는지를 활용하고 싶습니다.

여기서 내가 말하는 것의 예가 있습니다 (나는 이것이 작동하지 않는다는 것을 알고 있음) :

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

는 이와 같은 것과 같거나 본질적 으로이 객체를 직접 만들어야합니까?

도움이 되었습니까?

해결책

잘 앵커 요소를 사용하여 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);
​
.

모든 현대 브라우저에서 작동하고 IE 5.5 +에서도 작동합니다.

예제를 확인하십시오 여기 .

다른 팁

표준 사용 방법 URL 객체

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

경고 :이 인터페이스는 조금 새로운 것이므로 트랜스 프릴 러 호환성을 확인하십시오.표 및 대상 브라우저에서 테스트를 수행하십시오.

앵커 요소의 전원을 활용할 수 있습니다

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

일치하는 부분을 얻으려면 정규식으로 구문 분석 할 수 있습니다 ... 지금은 전체 코드가 없지만 queryData를 얻는 데 사용할 수 있습니다.

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

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

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top