2010-02-10 2 views
10

Имеет странную проблему на сайте. Ссылка тега, имеющая href="#anything", не перемещает вас в начало страницы или на указанный якорь, она перемещает вас на домашнюю страницу. Вот именно - когда я наводил ссылку на ссылку, которую я вижу в строке состояния FF example.com/# вместо example.com/testpage.php#.href = "#" перенаправляется на страницу индекса, но не на верхнюю страницу текущей страницы

Сайт полон дерьма кода, и это невозможно проверить все параметры и особенности конфигурации заголовка или т.п.

Любые намеки на то, где это может быть?

P.S. Ссылка href не изменена с JS, Firebug утверждает, что это href="#", когда я нажимаю на нее.

+0

На какой странице вы когда это происходит? –

+1

Есть ли целевой атрибут? –

+0

Покажите нам свой код, где определена ваша цель «#anything». Вы не повторяете '#' в имени/идентификаторе целей ... просто 'ничего'. – philfreo

ответ

16

Моя первоначальная мысль заключается в том, что у вас может быть base tag в игре. Проверьте свой код что-то вроде следующего, и удалить его, если необходимо:

<base href="http://www.mydomain.com/testpage.php" /> 

Очевидно, что необходимо соблюдать осторожность, так как может быть некоторая разметка, которая зависит от каких-либо существовавших ранее базовых тегов. Кроме того, убедитесь, что ваш HREF значение не предшествуют с Foward слэш, как это:

<a href="/#anything">Click Me</a> 

Как это пойдет #anything на начальную страницу по умолчанию в корневом каталоге.

+1

yep нашел базовый тег и только что подтвердил его как корень зла. Благодаря! – Brock

+1

@Brock Было ли это предназначено для каламбура? :) Хе-хе. – Sampson

3

Возможно, у вас есть <base> тег в разделе <head> вашего кода?

Это приведет к тому, что все запросы относительного URL-адреса начнутся с указанного href в базовом теге. Если страница зависит от ее присутствия, я бы сильно отговорил вас от ее удаления, или вы можете много обновить.

Подробнее:

+0

Спасибо, базовый тег. – Brock

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