как отлаживать закладки якоря не работает - PullRequest
4 голосов
/ 02 февраля 2012

У меня действительно сложная HTML-страница, и я добавил несколько якорей закладок в разных точках. Якоря выглядят так:

<a href="#foo bar">click here for foo bar</a>
lorum ipsum etc
<a name="foo bar">foo bar</a>

Но когда вы нажимаете на них, ничего не происходит - URL в адресной строке не меняется, и страница не перемещается.

Если я возьму свои якоря и вставлю их в более простую страницу, они начнут работать, поэтому я думаю, что что-то должно мешать навигации, но я не могу придумать, как это закрепить. Я задавался вопросом об ошибке в javascript где-то, которая отменяла навигацию, но на странице есть тысячи строк javascript, и я пока не нашел ничего подозрительного.

Проблема возникает как в Chrome, так и в Firefox.

Как я могу отладить эту проблему?


ОБНОВЛЕНИЕ: Может ли это быть проблемой CSS? целевые якоря находятся в пределах <div> со свойством CSS overflow:auto;. Это приводит к тому, что полоса прокрутки появляется внутри элемента div, а не на краю страницы, чего не было с моей простой текстовой страницей.

ОБНОВЛЕНИЕ 2: переполнение: авто не ломает именованные якоря; протестировано на простом примере

Ответы [ 3 ]

4 голосов
/ 08 февраля 2012

именованным якорям необходимо иметь имя или идентификатор из одного слова (идентификатор лучше, поскольку имя задается)

это будет работать:

<a href="#foo-bar">click here for foo bar</a>
    lorum ipsum etc
<a id="foo-bar">foo bar</a>
1 голос
/ 08 февраля 2012

Попробуйте это:

<a href="#foo bar">click here for foo bar</a>
lorum ipsum etc
<a id="foo bar">foo bar</a>

Так что в основном измените свой атрибут имени на идентификатор.

Также ... Я думаю, что в основном он будет искать "foo", а не "foo bar". Я не проверял это все же.

0 голосов
/ 08 февраля 2012

Это определенно была проблема со сценариями, а не синтаксис привязки. В конце концов (случайно) я отладил проблему, добавив недопустимый JavaScript в обработчик click (), который сломал обработчик click, но заставил якоря снова работать. Я смог продолжить оттуда.

...