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

[Решено {RTFM w3::html}] Ссылки внутри страницы (<a href="#razdel1">)


sowulon

Recommended Posts

Люди добрые! Поможите кто чем может!

 

Никак не могу разобраться с внутренними ссылками (внутри одного документа или статьи)

 

Вот, например, есть уже готовая статья. В статье достаточно много текста и посреди него затесались несколько городов, к которым мне нужно сделать отсылку с самого верха статьи.

 

Беру статью, нажимаю кнопочку "Источник" - вижу html - замечательно.

 

там где должна быть ссылочка, пишу:

 

<p><a href="#odessa">Одесса</a></p>
 
нахожу ниже в тексте эту злополучную Одессу
 
и к ней в параграф дописываю id получается как-то так <p id="odessa">какой-то текст</p>
 
По логике, появившаяся ссылка должна вести именно к месту указания id, верно?
 
а у меня на сайте, после нажатия на эту ссылку перебрасывает на главную, а в адресной строке вот такой урл:
 
site.ua/#odessa
 
Как же быть? Что делать? Где изменять?
Надіслати
Поділитися на інших сайтах


и к ней в параграф дописываю id получается как-то так <p id="odessa">какой-то текст</p>

 

По логике, появившаяся ссылка должна вести именно к месту указания id, верно?

Нет.

Вебмастер должен опираться на стандарты, а не логику.

http://www.w3.org/TR/html401/struct/links.html#h-12.1.3

написано черным по белому: "When the _name_ or _id_ attributes of the A element are set, the element defines an anchor that may be the destination of other links."

То есть по стандарту только "A" можно использовать в качестве цели для якоря. А не любой элемент.

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


и к ней в параграф дописываю id получается как-то так <p id="odessa">какой-то текст</p>

 

По логике, появившаяся ссылка должна вести именно к месту указания id, верно?

Нет.

Вебмастер должен опираться на стандарты, а не логику.

http://www.w3.org/TR/html401/struct/links.html#h-12.1.3

написано черным по белому: "When the _name_ or _id_ attributes of the A element are set, the element defines an anchor that may be the destination of other links."

То есть по стандарту только "A" можно использовать в качестве цели для якоря. А не любой элемент.

Вот почему-то моему сайту абсолютно фиолетово на стандарты.. Не работают внутренние ссылки, хоть ты тресни..

Пробовал в <a>, <p>, <h2>, пробовал id="" и name="" - результат один, вылет на главную и в урле #odessa

Наверное придется обойтись без внутрянок.. 

 

Даже вот так попробовал сделать:

 

<a name="odessa" /><p>какой-то текст</p>

Но понял, что делать так не стоило.. Не обратил внимание на то, что <a> сразу и открывающий, и закрывающий был :-) . После вставки этой строчки и сохранения статьи, редактор автоматом ее прописал во все параграфы, которые находились ниже этой вставки :)

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


да, если я ставлю где угодно в статье ссылку вида <p><a href="#">Текст</a></p> - после перехода меня точно также выбрасывает на главную с таким URL   site.ua/#

Может я где-то что-то выключил? Или наоборот, включил?

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


"base href" удалили?

это тот, который в header.tpl? Нет, на месте.

 

а можно это вживую посмотреть?

http://sokrates.com.ua/%D0%BE-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D0%B8.html

 

вот тут две ссылочки "Одесса" и "Вверх"

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


base href делает свое хитрое дело :ugeek: 

как вариант - использовать такие ссылки в статьях

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

или переработать вывод содержимого статей/описаний для вывода корректных URLов в ссылках с якорями.

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

верно. завыл совсем про <base>

конкретно в вашем случае ссылка должна быть такой

http://sokrates.com.ua/%D0%BE-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D0%B8.html#odessa

либо добавьте скрипт на эту страницу

 

$(document).ready(function() {
var pathname = window.location.href;
$('a').each(function(){
var link = $(this).attr('href');
if (link.substr(0,1) == "#") {
$(this).attr('href') = pathname + link;
}
});
}
  • +1 1
Надіслати
Поділитися на інших сайтах

  • 2 years later...

Ребята привет, создал тему https://opencartforum.com/topic/60442-%D0%BD%D0%B5-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82-%D0%B0%D0%BD%D1%85%D0%BE%D1%80-%D0%BD%D1%83%D0%B6%D0%BD%D1%8B%D0%BC-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%BC-%D0%B8-%D0%BF%D0%BB%D0%B0%D0%B2%D0%BD%D1%8B%D0%B9-%D0%BF%D0%B5%D1%80%D0%B5/ у меня та же проблема, не помогает этот пример что вы описали, да и если base грохнуть, сыпится вся страница. Спасибо кто поможет.

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


  • 4 years later...

Добрый день!

А подскажите для чайника, куда именно этот скрипт помещать?

В 03.07.2013 в 15:27, freelancer сказал:

верно. завыл совсем про <base>

конкретно в вашем случае ссылка должна быть такой

http://sokrates.com.ua/%D0%BE-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D0%B8.html#odessa

либо добавьте скрипт на эту страницу

 


$(document).ready(function() {
var pathname = window.location.href;
$('a').each(function(){
var link = $(this).attr('href');
if (link.substr(0,1) == "#") {
$(this).attr('href') = pathname + link;
}
});
}

 

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


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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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