Program Tip

자바 스크립트에서 새 위치 객체 만들기

programtip 2020. 11. 13. 23:59
반응형

자바 스크립트에서 새 위치 객체 만들기


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

다음은 제가 말하는 내용의 예입니다 (이게 작동하지 않는다는 것을 알고 있습니다).

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);

정규식에서 구문 분석하여 부분을 일치로 가져올 수 있습니다. 지금은 전체 코드가 없지만 쿼리 데이터를 가져 오는 데 사용할 수 있습니다.

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

match [0]은 전체 문자열이고, matches (1)은 URL의 첫 부분 (최대?까지)입니다. 원하는 경우 문자열 url의 각 부분을 구문 분석하는 정규식을 작성할 수 있습니다.

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

참고 URL : https://stackoverflow.com/questions/3213531/creating-a-new-location-object-in-javascript

반응형