|
 35.1 Кб |
|
| В Яндексе имеется код блока "Поделиться". http://api.yandex.ru/share/
Код вот такой:
<script type="text/javascript" src="//yandex.st/share/share.js" charset="utf-8"></script> <div class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="icon" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir"></div>
|
И валидатор находит в этом коде три однотипных ошибки в одной строке (Приложение).
Как бы их исправить?
(На странице остались только эти ошибки, а потому хочется от них отделаться). | |
|
|
|
|
|
|
|
для: Владимир55
(12.12.2011 в 18:51)
| | А никак - это так называемые собственные атрибуты, довольно распространенный прием, когда вводятся атрибуты, который браузеры игнорируют, но использует JavaScript-код. Обычно, там где-то рядом должен лежать вариант, специально разработанный для того, чтобы код оставался валидным (для разных DOCTYPE-пов). | |
|
|
|
|
|
|
|
для: Владимир55
(12.12.2011 в 18:51)
| | У всякого тега существует определённый конечный набор стандартных атрибутов - для каждого тега они перечислены в спецификации W3C.
Изобретать свои собственные "нестандартные" атрибуты разрешается Javascript'ом, но НЕ разрешается спецификацией W3C.
Так что, если уберёте все эти "нестандартные" атрибуты (data-yashareL10n, data-yashareType, data-yashareQuickServices), то пройдёте валидацию. Но тогда не будет работать Javascript.
И - наоборот, если оставите эти атрибуты - по-любому не пройдёте валидацию. Зато всё будет работать.
Так что... не "отделаетесь" :-) | |
|
|
|
|
|
|
|
для: Владимир55
(12.12.2011 в 18:51)
| | выведите div через js
| |
|
|
|
|
|
|
|
для: AlexSol
(12.12.2011 в 20:02)
| | Если имеется в виду так:
<script language="javascript" type="text/javascript">
document.write('<div class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="none" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir,lj,friendfeed,moikrug"></div>')
</script>
|
то остаются те же три ошибки, плюс к ним добавляется четвертая "document type does not allow element "div" here ", относящаяся к промежутку перед </div>. | |
|
|
|
|
|
|
|
для: Владимир55
(13.12.2011 в 17:00)
| |
<script language="javascript" type="text/javascript">
document.write('<div class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="none" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir,lj,friendfeed,moikrug"></"+"div>')
</script>
|
| |
|
|
|
|
|
|
|
для: elenaki
(13.12.2011 в 18:05)
| | При сохранении прежних, ошибок стало еще больше. Добавилось:
document type does not allow element "div" here
character "<" is the first character of a delimiter but occurred as data
end tag for "div" omitted, but OMITTAG NO was specified
start tag was here
|
| |
|
|
|
|
|
|
|
для: Владимир55
(13.12.2011 в 18:48)
| |
ocument.write('<div class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="none" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir,lj,friendfeed,moikrug"></div>')
|
| |
|
|
|
|
|
|
|
для: Владимир55
(13.12.2011 в 18:48)
| | Всё, что написано внутри круглых скобок метода write () - должно быть написано В ОДНУ СТРОКУ, БЕЗ ПЕРЕНОСОВ. | |
|
|
|
|
 9.4 Кб |
|
|
для: АЯС
(13.12.2011 в 23:57)
| | В одну строку написал, буквально так:
<script language="javascript" type="text/javascript">
document.write('<div class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="none" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir,lj,friendfeed,moikrug"></div>')
</script>
|
А результат - в скриншоте. | |
|
|
|
|
|
|
|
для: Владимир55
(14.12.2011 в 01:06)
| | Надо:
1) В одну строку
2) И именно с символами < и > в явном виде, а не со спецсимволами < и > | |
|
|
|
|
|
|
|
для: АЯС
(14.12.2011 в 01:31)
| | Это уже было - предлагала elenaki (13.12.2011 в 18:05)
Результат Владимир55 (13.12.2011 в 18:48)
Код в одну строку. Это он на форуме изображается таким образом, а написан в одну строку.
Я вот думаю: может, через Аякс? | |
|
|
|
|
|
|
|
для: Владимир55
(14.12.2011 в 09:16)
| | Зачем AJAX? Вполне можно просто через внешний скрипт. | |
|
|
|
|
|
|
|
для: АЯС
(14.12.2011 в 09:57)
| | А может быть и так. Но вот ведь не получается... | |
|
|
|
|
|
|
|
для: Владимир55
(14.12.2011 в 09:16)
| | извините,я ошиблась. там должны быть одинарные кавычки, между <\ и div>.
<script language="javascript" type="text/javascript">
document.write('<div class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="none" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir,lj,friendfeed,moikrug"></'+'div>')
</script>
|
| |
|
|
|
|
|
|
|
для: elenaki
(14.12.2011 в 10:54)
| | Всё тоже самое... Плюс дополнительные ошибки.
Интересно, а если, для пробы, разместить этот форагмент на Вашем сайте, то там нормально? | |
|
|
|
|
|
|
|
для: Владимир55
(14.12.2011 в 12:59)
| | мне валидатор на ваш код ошибок не выдает (http://validator.w3.org/?) | |
|
|
|
|
|
|
|
для: elenaki
(14.12.2011 в 13:29)
| | Мистика!
Я им и проверяю. Сейчас ещё раз попробовал - ошибки те же.
А на тестовой странице у Вас какой DOCTYPE ?
У меня вот что:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
|
| |
|
|
|
|
|
|
|
для: Владимир55
(14.12.2011 в 13:35)
| | да вы что ребята! неужели никто не может ответить нормально?!
теперь в гугле пишем "html5 data attribute"
если разжевывать - "data-*" атрибуты появились в html5 уже по w3c. если хочешь валидности - придется менять доктайп на хтмл5 | |
|
|
|
|
автор: mmazay (17.01.2012 в 20:19) |
|
|
для: Владимир55
(12.12.2011 в 18:51)
| | Можно сделать так -
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "урл_сами_знаете_какой/TR/xhtml1/DTD/xhtml1-transitional.dtd"
[
<!ATTLIST div data-yashareL10n CDATA #IMPLIED>
<!ATTLIST div data-yashareType CDATA #IMPLIED>
<!ATTLIST div data-yashareQuickServices CDATA #IMPLIED>
]>
|
К сожалению, при этом в верху страницы появляются неубиваемые символы ]>
Но валидацию проходит :) | |
|
|
|