Получение абсолютного URL от относительного. (Проблема IE6) - PullRequest
78 голосов
/ 23 января 2009

В настоящее время я использую следующую функцию для «преобразования» относительного URL-адреса в абсолютный:

function qualifyURL(url) {
    var a = document.createElement('a');
    a.href = url;
    return a.href;
}

Это работает довольно хорошо в большинстве браузеров, но IE6 все еще настаивает на возвращении относительного URL! Это делает то же самое, если я использую getAttribute ('href').

Единственный способ получить полноценный URL из IE6 - это создать элемент img и запросить его атрибут 'src' - проблема в том, что он генерирует запрос к серверу; то, чего я хочу избежать.

Итак, мой вопрос: есть ли способ получить полный URL-адрес в IE6 от относительного (без запроса сервера)?


Прежде чем вы порекомендуете быстрое исправление регулярных выражений / строк, уверяю вас, это не так просто. Базовые элементы + двойной период относительные URL + тонна других потенциальных переменных действительно превращают его в ад!

Должен быть способ сделать это без необходимости создавать гигантское решение regex'y ??

Ответы [ 11 ]

0 голосов
/ 23 января 2009

Если url не начинается с '/'

Возьмите URL текущей страницы, отрежьте все, что осталось за последним '/'; затем добавьте относительный URL.

Иначе, если url начинается с '/'

Возьмите URL текущей страницы и отрежьте все справа от единственного '/'; затем добавьте URL.

Иначе, если url начинается с # или?

Возьмите URL текущей страницы и просто добавьте url


Надеюсь, у вас это получится

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...