У меня есть сайт Joomla, который использует mod_rewrite для создания красивых URL-адресов.
http://www.example.com/resources/newsletter
Однако это создало проблему. Включая такие изображения: src = "images/pic.jpg", он будет искать файл по адресу:
http://www.example.com/resources/newsletter/images/pic.jpg
... которого явно не существует. Чтобы обойти это, я включил тег <base> в свой раздел head:
<base href = "http://www.example.com/" />
... который работал нормально, пока я не попытался сделать ссылку на точку привязки (закладку) на той же странице:
<!-- on http://www.example.com/resources/newsletter -->
<a href = "#footer">go to the footer</a>
<!-- clicking that link takes you to http://www.example.com/#footer -->
Изменить мои ссылки на <a href = "resources/newsletter/#footer"> невозможно, так как я не обязательно буду знать URL-адрес страницы при ее редактировании. Есть ли способ заставить некоторые ссылки игнорировать директиву <base>?
Хотя я бы предпочел прямое HTML-решение, я уже использую jQuery на этом сайте, так что это может быть вариант, если я застрял.






Можно ли изменить атрибут src на что-то вроде /images/pic.jpg? Так вы добьетесь желаемого эффекта.
Если это невозможно, вам подойдет этот (непроверенный) код jQuery:
$('a[@href^ = "#"]').click(function() {
var hash = this.hash, el = $(hash), offset;
if (!el.size()) {
el = $("[@name = " + hash.slice(1) + "]");
}
offset = el.offset();
window.scroll(offset.left, offset.top);
});
Старый вопрос, новый ответ .. Попробуй это:
$('a[href^ = "#"]').on('click', function (event) {
event.preventDefault();
window.location.hash = $(this).attr('href');
});