a.href属性是否始终以绝对形式返回?

Fla*_*ash 7 javascript dom cross-browser absolute-path

在以下HTML中:

<a id="link" href="page.htm">Page</a>
Run Code Online (Sandbox Code Playgroud)

我发现document.getElementById("link").href总是返回绝对路径page.htm而不是相对路径,就像我输入它一样.见http://jsfiddle.net/4HgAW/.

我可以保证javascript总是会在每个浏览器中返回绝对路径吗?

我问的原因是我抓住http://www....部分来检查链接指向哪个域,我也需要它来处理内部链接.

Šim*_*das 15

是的,所有相关浏览器都会返回完全限定的URL.

如果要检索href属性的原始值(在本例中为"page.html"),则可以执行以下操作:

anchor.getAttribute('href')
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不适用于旧版本的IE(8及以下版本).

现场演示: http ://jsfiddle.net/simevidas/4HgAW/1/

  • 对于那些使用jQuery的人:当使用`$('#someAnchor').attr('href')`时,jQuery也会返回原始的`href`属性值.要从jQuery元素获取绝对URL,您必须使用`$('#someAnchor').get()[0] .href`. (2认同)
  • @fero jQuery为此提供了`.prop('href')`,所以你不必做`[0] .href`.顺便说一句,你可以直接做`[0]`,即你不需要`.get()`. (2认同)