Якоря Safari по ссылкам не работают - PullRequest
6 голосов
/ 11 июня 2010

Мой HTML-якорь выглядит следующим образом.

<a name="template-8"/>
<h4 class="template" id="template-8">A title</h4>

Насколько я знаю, браузер должен перейти к элементу с соответствующим атрибутом имени или идентификатора.

Когда я набираюurl http://my.site.com/templates#template-8 safari перемещается вниз по странице, как и ожидалось.

Однако при связывании, как показано ниже, якорь ничего не делает.Chrome, Opera, IE7 и Firefox все работают.

<a href="http://my.site.com/templates#template-8">A link</a>

Safari версии 5.0, может ли это быть ошибкой сафари?

Ответы [ 6 ]

15 голосов
/ 11 июня 2010

Проблема была в том, что у меня был перенаправленный заголовок на странице, на которую я ссылался.

Opera, IE, Chrome, Firefox перенесут привязку к новой странице.Однако safari теряет привязку при перенаправлении.

Если у вас возникли проблемы с привязками safari, отключите все перенаправления.

10 голосов
/ 05 марта 2013

Для меня просто пришлось поменять

http://domain.com/page#myanchor 

до

http://domain.com/page/#myanchor
2 голосов
/ 30 апреля 2012

Я только что столкнулся с той же проблемой и нашел ваше сообщение во время поиска - очевидно, вы исправили это, так как это было еще в 2010 году, но решили, что я опубликую то, что нашел, на случай, если кто-то найдет это. :)

Я использую htaccess для перенаправления моего URL-адреса с mydomaincom / index.php на mydomaincom / и обнаружил, что моя навигация не работает в Safari, поскольку мой href обращается к адресам, где значение index.php # и Safari v5 не переносятся якорные ссылки.

Вместо того, чтобы отключить перенаправление, я просто изменил URL-адреса, указав на значение mydomaincom / #. Это не только отлично работает для всех браузеров, но и ускорило мою страницу (пока не знаю, как, но будет искать это сейчас:))

1 голос
/ 11 июня 2010

Я вижу две побочные проблемы, которые не являются причиной (поскольку вы уже нашли проблему), но, вероятно, не помогают:

  • Самозакрывающийся тег <a>.Вы не можете самостоятельно закрывать теги, которые должны иметь конечные теги, это должно быть: <a name="template-8"></a>.
  • Атрибуты name и id имеют одно и то же "пространство имен", поэтому вы не можете иметьто же значение для атрибута name и id.Все браузеры за последние 10 лет поддерживают привязки к идентификаторам, так что отбросьте этот бесполезный тег ссылки.
0 голосов
/ 23 апреля 2019

Он не работал с ранее предложенными решениями, он работал для меня, чтобы создать перенаправление с использованием javascript следующим образом.

<!-- <a href="#first-block"> -->
<a href="javascript:redirection('first-block')">

function redirection(destination){
    window.location.href = "example.com/page.html#" + destination;
}

Я оставляю это здесь на случай, если кто-то будет служить вам в будущем.

0 голосов
/ 31 августа 2013

Исправить тег привязки в Safari.Я поступаю следующим образом:

 <a href="#" class="btn">A tag</a>

И в моем файле CSS:

.btn{
  display:block;
  width:100%;
  height:100%;
}

Важно по какой-то причине, иногда Safari нужно видеть вашу ссылку как блок,может быть полезно, если вы создаете список с некоторыми ссылками внутри.Пример:

<ul>
    <li><a href="#" class="btn">A tag</a></li>
    <li><a href="#" class="btn">A tag</a></li>
</ul>

Работает для Safari 6 +

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