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

Тег target="_blank"


Recommended Posts

Недавно решил проверить свой магазин на сайте http://validator.w3.org/ .

На главной странице было обнаружено 45 ошибок.

Проанализировав конкурентов своих на данном сервисе, понял что мои 45 ошибок это мелочи....но все же

Мне как то спокойней спать, зная что на сайте ошибок нет и он будет во всех браузерах работать стабильно....

Исправил 44 ошибки,но вот последнюю что то не сильно получается.

  • ИзображениеLine 80, Column 34: there is no attribute "target"

    <a href="/Vopros-otvet" target="_blank" ><img src="image/data/knopka/knopka1.…

    You have used the attribute named above in your document, but the document type you are using does not support that attribute for this element. This error is often caused by incorrect use of the "Strict" document type with a document that uses frames (e.g. you must use the "Transitional" document type to get the "target" attribute), or by using vendor proprietary extensions such as "marginheight" (this is usually fixed by using CSS to achieve the desired effect instead).

    This error may also result if the element itself is not supported in the document type you are using, as an undefined element will have no supported attributes; in this case, see the element-undefined error message for further information.

    How to fix: check the spelling and case of the element and attribute, (Remember XHTML is all lower-case) and/or check that they are both allowed in the chosen document type, and/or use CSS instead of this attribute. If you received this error when using the <embed> element to incorporate flash media in a Web page, see the FAQ item on valid flash.

Ошибку эту вроде как и ошибкой назвать нельзя. Ведь тег target="_blank"

вроде как нормально работает и открывет ссылку в новой вкладке браузера.

НО! Полазив по просторам интернета, я наткнулся на статью достаточно уважаемого блогера, который описывает данную проблему.

Цитата с его статьи:

<!DOCTYPE> - XHTML 1.0 Strict. Документы данного типа обязаны иметь четкий синтаксис, а в спецификации для документов данного типа отсутствует атрибут target="_blank". Именно поэтому для нас данный атрибут является невалидным и по сути его запрещено использовать.

Тоесть тег как бы рабочий, и нормально себя чувствует если у вас

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Но в опенкарте стоит другой тип документа:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

и для данного типа документа нужно использовать rel="external" , который работает со скриптом :

  • function externalLinks() {
  • if (!document.getElementsByTagName) return;
  • var anchors = document.getElementsByTagName("a");
  • for (var i=0; i<anchors.length; i++) {
  • var anchor = anchors;
  • if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") {
  • anchor.target = "_blank";
  • anchor.className = "external";
  • anchor.title = "Opens in new window"
  • }
  • }
  • }
  • window.onload = externalLinks;
Так вот вопрос к вам :

В админке,текстовый редактор по умолчанию ставит target="_blank" при выборе открытия ссылки в новом окне.

Что нужно сделать,чтоб все таки был rel="external" ?

Вручную каждую статью ж неудобно редактировать.....

P.S. сейчас установил скрипт в магазин и изменил вручную на rel="external"

:eek: наконец то увидел свою долгожданную зеленую полоску и надпись :

  • Jump To:
  • Congratulations · Icons
This document was successfully checked as XHTML 1.0 Strict!

Result: Passed

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


Лучше всего оставить стандартный параметр target, а доктайп заменить на:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Ссылки:

http://ru.wikipedia.org/wiki/XHTML#.D0.92.D0.B5.D1.80.D1.81.D0.B8.D0.B8_XHTML

http://htmlbook.ru/html/!doctype

ЗЫ: в штмл5 атрибут target вернули.

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


Что то мне подсказывает что это не выход из положения.

Ведь если на самом деле использование переходного доктайпа было отличным выходом ,то что делает в опенкаре строгий доктайп? Ведь не просто так разработчики его вставили.

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


Разработчики - всего лишь люди, такие же как и вы. А если следовать вашей логике, то что делает в опенкарте target, если яваскрипт был отличным выходом? Ведь не просто так разработчики его вставили.

Лично я стараюсь избегать решений на яваскрипте всегда, когда возможно обойтись другими методами, т.к. яваскрипт может быть отключен в браузере.

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


Лично я стараюсь избегать решений на яваскрипте всегда, когда возможно обойтись другими методами, т.к. яваскрипт может быть отключен в браузере.

включен чаще. можно сделать так что бы оба варианта работали
Надіслати
Поділитися на інших сайтах

А, тогда полностью согласен - сайт должен быть полностью рабочим без яваскрипта, а скрипты использоваться для повышения комфорта посетителей.

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


нафига оба пихать, если один из них гарантированно работает везде и всегда?

Я и писал в начале темы что он отлично работает. Проблема не в этом.

Дело в том что target ,как пишут некоторые сайты, не совсем правильный тег, так как мы лишаем правило выбора пользователя,открыть ему в той же вкладке, или в новой. Вот по этому этот тег и пытаются искоренить. А rel="external" видимо новая альтернатива таргета,которую еще не успели запретить..

Это сугубо мое имхо..возможно я сильно ошибаюсь

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


Так все таки по теме....возможно ли сделать так, чтоб вместо target все таки в редакторе свтявлялся в ссылку рел?

Может подскажите хоть в какой папке искать?

Ужасно охот это сделать на сайте..

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


и по поводу замены доктайпа....наверно те люди, которые создают новые версии, меняют не только название....ведь при новом доктайпе наверняка что то улучшено и усовершенствовано.....иначе какой смысл вообще их создавать? Давайте весь интернет переведем на переходной , и будет всем благодать...

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


Так вот вопрос к вам :

В админке,текстовый редактор по умолчанию ставит target="_blank" при выборе открытия ссылки в новом окне.

Что нужно сделать,чтоб все таки был rel="external" ?

Вручную каждую статью ж неудобно редактировать.....

Варантов несколько:

1. Менять doctype. Ничего крамольного в этом нет - верстальщик в этих вопросах главный, а не php-кодеры. Сделайте шаблон "valid" и пишите там правильный доктайп и теги. Но без (2) в этом случае тоже не обойтись.

2. Исправлять CKEditor. Но он в опенкарт включен в упакованном виде, в котором фиг разберешься. Так что предстоит лишняя морока. Плюс проблемы с обновлением ещё одного стороннего компонента.

3. Если надо быстро, то я бы оставил (2) как есть, делал (1), а в админке (в валидаторе напимер) добавил обработку этих полей (заменить target="_blank" на rel="external"). Если сделать это в валидаторе, то и в форму данные вернутся исправленными (в случае наличия ошибок), и в базу попадет исправленный вариант.

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


  • 10 months later...

Посмотрел только что шаблон по умолчанию версии 1.5.4.1 , так там стоит

<!DOCTYPE html>

Где у вас взялась запись

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ?

Приписал тот, кто правил шаблон, наверное

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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