2011-04-29 4 views
7

:a.href 속성은 항상 절대적으로 반환됩니까? 다음 HTML에서

<a id="link" href="page.htm">Page</a> 

내가 document.getElementById("link").href 항상 오히려 내가 입력 한대로 상대 경로보다 page.htm에 절대 경로를 반환 찾는거야. http://jsfiddle.net/4HgAW/을 참조하십시오.

자바 스크립트가 모든 브라우저에서 항상 절대 경로를 반환하도록 보장 할 수 있습니까?

제가 묻는 이유는 링크가 가리키는 도메인을 확인하기 위해 http://www.... 부분을 잡아 내고 있으며, 내부 링크에도 마찬가지로 작동해야합니다.

답변

13

예, 모든 관련 브라우저는 정규화 된 URL을 반환합니다. 당신이 href 속성 (이 경우 'page.html')의 원래 값을 검색하려면

, 당신은이 작업을 수행 할 수 있습니다

anchor.getAttribute('href') 

을하지만, 이전에 작동하지 않습니다 IE 버전 (8 이하).

라이브 데모 : jQuery를 사용하여 당신의 사람들을 위해http://jsfiddle.net/simevidas/4HgAW/1/

+2

:'$ ('#의 someAnchor')를 사용할 때 jQuery를도 원래'href' 속성 값을 반환 ATTR ('HREF') '.. jQuery 엘리먼트로부터 절대 URL을 얻으려면'$ ('# someAnchor'). get() [0] .href'를 사용해야한다. – fero

+2

@fero jQuery는'.prop ('href')'를 제공하므로'[0] .href'를 수행 할 필요가 없습니다. Btw, 당신은'[0]'을 직접 할 수 있습니다. 즉,'.get()'이 필요 없습니다. –

+0

나는'prop()'를 몰랐다. 감사. 하지만 제 경우에는 jQuery 객체에서 기본 DOM 객체를 가져 오기 위해 get()이 필요합니다. 단지'[0]'은'get()'에 의해 반환 된 첫 번째 DOM 객체 대신 첫 번째 jQuery 객체를 반환합니다. – fero

관련 문제