Как получить «сырое» содержимое href в JavaScript - PullRequest
56 голосов
/ 11 октября 2009

Я пытаюсь написать скрипт GreaseMonkey, в котором я хочу найти все ссылки, которые являются относительными ссылками. Мне казалось, что способ сделать это - сопоставить содержимое href с /^https?:///.

Но я обнаружил, что когда я получаю доступ к атрибуту href якоря, он всегда нормализуется или превращается в форму, содержащую "http". То есть, если HTML содержит:

<a id="rel" href="/relative/link">inner</a>

доступ

document.getElementById("rel").href

1010 * возвращается *

http://example.com/relative/link

Как получить доступ к необработанным данным в атрибуте href?

Альтернативно, есть ли лучший способ найти относительные ссылки?

Ответы [ 2 ]

57 голосов
/ 11 октября 2009

Попробуйте вместо этого getAttribute метод .

34 голосов
/ 11 октября 2009

Типичный. Я понял это сам почти сразу после публикации вопроса.

вместо:

anchor.href

использование:

anchor.getAttribute("href")

Конечно, мне потребовалось больше времени, чтобы набрать этот ответ, чем всем остальным, чтобы ответить на него. (Черт, вы люди быстрые.)

...