Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Не работают анкеры на странице [решено]


kleo

Recommended Posts

Столкнулся с такой проблемой:Создал новую статью и написал там длинный текст. Чтобы было удобно навигировать, поставил анкеры и сделал вверху страницы ссылки на них.НО в магазине, когда щелкаешь на одну из этих ссылок, открывается почему-то "Главная" !?!Скопировал исходный код этой самой страницы с длинным текстом в Joomla, без каких либо изменений: все работает!!!В чем может быть причина?Заранее признателен!

Надіслати
Поділитися на інших сайтах


ужасный вариант, но рабочий.

вместо ссылок типа "якорь на страницу" сделайте ссылки типа "URL" с адресами вида:

http://ваш_сайт/index.php?route=information/information&information_id=номер_статьи#тут_имя_вашего_анкера
  • +1 1
Надіслати
Поділитися на інших сайтах

  • 3 months later...

Тоже встал на эти грабли. Причина в следующем:

В шапке шаблона содержится тег: <base href="http://ваш_домен/" /> который указывает браузеру, что все относительные ссылки нужно делать от корня сайта, а не от текущего адреса страницы.

Решений множество:

1. Удаляем в файле /catalog/view/theme/ваша_тема/template/common/header.tpl строку с этим тегом. Я у себя так и сделал, пока полёт нормальный, глюков не обнаружил, хотя и опасался, что в аяксе что-либо перестанет работать или ещё где.

2. Присваиваем правильное значение переменной $base, это нужно в файле /catalog/controller/common/header.php поправить вот этот код:

if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
$this->data['base'] = HTTPS_SERVER;
} else {
$this->data['base'] = HTTP_SERVER;
}

К адресу сервера нужно добавить адрес страницы. Этот способ не пробовал, он по своему эффекту должен быть абсолютно идентичен первому, т.к. при отсутствии в <head> тега <base> за базу принимается текущий адрес.

Странно, что эта ошибка так скромно обсуждается, что, никто не пользует якоря на свих сайтах?

  • +1 1
Надіслати
Поділитися на інших сайтах


  • 2 years later...

2. Присваиваем правильное значение переменной $base, это нужно в файле /catalog/controller/common/header.php поправить вот этот код:

if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
$this->data['base'] = HTTPS_SERVER;
} else {
$this->data['base'] = HTTP_SERVER;
}

Что на что меняем, с base в хеадере только код <base href="<?php echo $base; ?>" его закоментировал, вставил ваш код в ничего не изменилось. Вернее якоря заработали, а некоторые ссылки, например поиск перестали.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.