Странная проблема с валидотором и JavaScript
Вложений: 1
Делаю плагин кнопок социальных сетей для одной CMS'ки, с динамической подгрузкой самих кнопок в зависимости от местонахождения на сайте, и наткнулся на проблему с валидатором. Сам сайт полностью валидный, и код я писал тоже валидный, но валидатор почему-то не считает мой труд оправданным.
А именно, есть код на JS: <span class="knopka"> <span onClick="showhide('share_span');" style="cursor: pointer;">Поделиться</span> <span id="share_span" style="display: none;"></span> </span> <script type="text/javascript"> obj('share_span').innerHTML= ' <span class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="none"'+ ' data-yashareQuickServices="vkontakte,facebook,twitter,odnoklassniki,moimir,lj,gplus"></span>'; </script> Валидатор выдает мне не совсем понятный результат: http://javascript.ru/forum/attachmen...d=135823144 6 Я понимаю, что означает эта ошибка, но почему она возникает на JS строке? Валидатору интересно, что я передаю с помощью JS, это понятно, но где он нашел ошибку? Я найти не могу. Может просто глаза замылены уже. PS: showhide() - функция скрытия объекта, если он виден, и показа, если скрыт. obj() - обращение к DOM объекта. Использую яндекс API для реализации, однако |
Неужели никто не сталкивался с подобной проблемой?
|
Викториан, как вариант, напиши все в одну строку...
<script type="text/javascript"> obj('share_span').innerHTML='<span class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="none" data-yashareQuickServices="vkontakte,facebook,twitter,odnoklassniki,moimir,lj,gplus"></span>'; </script> |
Я писал в одну, но та же самая фигня, ошибка. Писал просто '<span></span>'; и все равно выдавало, что тег не открыт... Не понимаю что не так.
|
<span class="knopka"> <span onClick="showhide('share_span');" style="cursor: pointer;">Поделиться</span> <span id="share_span" style="display: none;"></span> </span> <script type="text/javascript"> obj("share_span").innerHTML="<span class=\"yashare-auto-init\" data-yashareL10n=\"ru\" data-yashareType=\"none\"\ data-yashareQuickServices=\"vkontakte,facebook,twitter,odnoklassniki,moimir,lj,gplus\"></span>"; </script> |
А кто сказал, что валидаторы всегда правильно отслеживают ошибку и место ошибки?
|
Цитата:
|
Цитата:
Line 101, Column 96: end tag for element "SPAN" which is not open …Services=\"vkontakte,facebook,twitter,odnoklassniki,moimir,lj,gplus\"></span>"; ✉ The Validator found an end tag for the above element, but that element is not currently open. This is often caused by a leftover end tag from an element that was removed during editing, or by an implicitly closed element (if you have an error related to an element being used where it is not allowed, this is almost certainly the case). In the latter case this error will disappear as soon as you fix the original problem. If this error occurred in a script section of your document, you should probably read this FAQ entry. |
<span class="knopka"> <span onClick="showhide('share_span');" style="cursor: pointer;">Поделиться</span> <span id="share_span" style="display: none;"></span> </span> <script type="text/javascript"> var a="<span class=\"yashare-auto-init\" data-yashareL10n=\"ru\" data-yashareType=\"none\" data-yashareQuickServices=\"vkontakte,facebook,twitter,odnoklassniki,moimir,lj,gplus\"></span>"; obj("share_span").innerHTML=a.toString(); </script> |
При таком варианте ошибки нет, но вместо кнопок выводится простой текст. Так как угловые скобки теперь стали лишь мнемониками (наверное). Я уже множество вариантов перепробовал, и через PHP, и через JS, если использовать не JS, то выдает три ошибки, так как элементы содержат недопустимые атрибуты. Муть какая-то получается. Сейчас пытаюсь написать свой компонент для "социальных кнопок".
|
Часовой пояс GMT +3, время: 09:51. |