Рекомендуемые сообщения

edifier    23

Недавно решил проверить свой магазин на сайте 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Sammy95    67

Лучше всего оставить стандартный параметр 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 вернули.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
edifier    23

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Sammy95    67

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
freelancer    1 418

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

включен чаще. можно сделать так что бы оба варианта работали

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Sammy95    67

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
freelancer    1 418

юзабилити. я не про конкретно этот случай.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Sammy95    67

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
edifier    23

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
edifier    23

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
edifier    23

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
rb2    407

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

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Rrrichard    6

Посмотрел только что шаблон по умолчанию версии 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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу