英文: a 链接标记 IE 下会自动补全 href.
Работая над The Ajax Link Tracker и Mapsurface, я столкнулся с несоответствием в том, как атрибут HREF извлекается с помощью сценариев DOM.Атрибут HREF отличается от других атрибутов элемента в том смысле, что набор значений может быть относительно контекста URL -адреса страницы. Если вы установите ссылку с относительным атрибутом HREF
<a href = ../development/test1.html> тестовая страница </a>
Браузер рассмотрит текущий URL -адрес страниц и выведет абсолютный URL для ссылки.
http://www.glenn.jones.net/development/test1.html
Это корень проблемы, некоторые браузеры возвращают текст атрибута, а другие возвращают полученный абсолютный URL. Результаты также различаются по методу, который вы используете для извлечения атрибута HREF. Есть три общих способа доступа к атрибуту:
linkobj.href; linkobj ['href']; linkobj.getattribute ('href');
linkobj.href и linkobj['href ']; Методы доступа к атрибуту последовательно возвращают полученный абсолютный URL.
Microsoft попыталась решить эту проблему , добавив второй параметр в метод getattribute. Второй параметр может быть установлен на 0,1 или 2. Если параметр установлен на 2, метод возвращает текст атрибута. Любая другая настройка вернет полученный абсолютный URL.
linkobj.getattribute ('href'); linkobj.getattribute ('href', 2);
Абсолютный URL
Так что же следует возвращать методом getattribute? Спецификация ядра уровня 2 DOM W3C, которая устанавливает структуру метода getAttribute, не охватывает эту проблему. Дело не в том, что подход неверен или правильный. На этот момент спецификация открыта для интерпретации.
Как кодер я хотел бы иметь возможность получить доступ к обоим значениям. Спецификация ядра DOM должна быть обновлена для решения проблемы.
В настоящее время я использую метод свойства старой школы объекта linkobj.href для возврата полученных абсолютных URL -адресов. Это дает наиболее последовательные результаты во всех браузерах. URL -адреса интереса
Как обычно, так же, как я заканчивал этот пост, я нашел этот отчет об ошибке на сайте QuickMode, в котором обсуждается ту же тему.
getAttribute href всегда абсолютно.html