Почему я не могу использовать относительные URL с IE7?

Я гуглил некоторое время и, может казаться, не нахожу ответ на этот вопрос. Моя проблема следующие:

Для моего jQuery мне нужны мои ссылки, чтобы быть относительным, а не абсолютным. Мой PHP установлен возвратить относительные URL, и все хорошо работает, пока я не тестирую его в IE7. По некоторым причинам IE7 продолжает изменять мои относительные URL на abosulute, который повреждает мой js сценарий. Действительно ли это нормально? Существует ли способ обойти его?

Например:

IE8, Chrome, Firefox, Safari и т.д. -

<a href='/page' onclick='click_handler(this);return false;'>clicky</a>

IE7 -

<a href='http://www.myurl.com/page' onclick='click_handler(this);return false;'>clicky</a>
8
задан gomezuk 5 May 2010 в 15:49
поделиться

4 ответа

Что я делаю, так это захватываю baseUrl при init, например:

var baseUrl = window.location.href.substring(0, window.location.href.lastIndexOf("/") + 1);

... а затем в своем обработчике URL отделяю baseUrl:

var url = $(this).attr("href").replace(baseUrl, "");

Также вы можете проверить, "нормализован" ли href, используя . support():

$.support.hrefNormalized

(возвращает true, если браузер не вносит изменений при захвате значения href, поэтому в IE это значение сейчас false)

.
9
ответ дан 5 December 2019 в 18:57
поделиться

Верно, похоже, лучший способ сделать это - убрать домен в jQuery. Для тех, у кого есть подобная проблема, вот как выглядит мой обработчик события клика:

var href_attr = element.getAttribute('href');
if (href_attr.indexOf('http://')>-1) {
    href_attr = href_attr.substr(location.href.length-1);
};
0
ответ дан 5 December 2019 в 18:57
поделиться

Похоже, это как-то связано с проблемами безопасности - http://blogs.msdn.com/ie/archive/2005/08/15/452006.aspx

0
ответ дан 5 December 2019 в 18:57
поделиться

На вашем месте я бы использовал определение браузера и добавил условие, чтобы разделить URL до относительного пути. Я не знаком с jQuery на 100%, но я представляю, что вы можете сделать это с помощью простого разделения и восстановления или REGEX-запроса.

См. jQuery URL Parser Plugin: http://plugins.jquery.com/project/url_parser

0
ответ дан 5 December 2019 в 18:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: