2016-02-20 2 views
0

В моем HTML <head>, я определил следующие <base>:база HREF к/- теперь HREF идентификаторам не работает

<base href="/" target="_blank"> 

Теперь я не могу связать с тегами с идентификаторами на той же странице, такие как:

<sup id="ref1" name="ref1"><a href="#fn1" target="_top">1</a></sup> 

<p class="footnote" id="fn1" name="fn1"> 
    <a href="#ref1" title="back" target="_top">&#8617;</a> 
</p> 

Ссылки на идентификаторы возвращают меня в корневую директорию вместо указанного идентификатора. Могу ли я каким-то образом заставить элементы <a> искать идентификатор в текущем документе, не снимая href="/" в <base>?

+0

Возможный дубликат [Сделать якорные ссылки относятся к текущая страница при использовании ] (http://stackoverflow.com/questions/8108836/make-anchor-links-refer-to-the-current-page-when-using-base) – arcyqwerty

ответ

0

Try:

$(document).ready(function() { 
    var pathname = window.location.href.split('#')[0]; 
    $('a[href^="#"]').each(function() { 
     var $this = $(this), 
      link = $this.attr('href'); 
     $this.attr('href', pathname + link); 
    }); 
}); 

, которая исправит все ссылки или (без JQuery) по отдельным ссылкам:

<a href="javascript:;" onclick="document.location.hash='anchor';">Anchor</a> 

Источник: Make anchor links refer to the current page when using <base>

+0

Спасибо, thi с. Я также нашел решение, в котором работает следующее: '' –

+0

Да, это тоже работает, если вы находитесь на пути/filename.html'. Предоставленный ответ более общий, поскольку он позволяет использовать относительные привязки, которые не зависят от имени страницы. Например, если вы переименовали 'filename.html' ->' foo.html', вам придется изменить все ссылки. Это также работает на разных страницах (одинаковый код для каждой страницы). Ваше решение не использует JS, хотя это также может быть желательно. – arcyqwerty

 Смежные вопросы

  • Нет связанных вопросов^_^