Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.01.2013, 10:34
Аспирант
Отправить личное сообщение для Викториан Посмотреть профиль Найти все сообщения от Викториан
 
Регистрация: 09.04.2012
Сообщений: 65

Странная проблема с валидотором и JavaScript
Делаю плагин кнопок социальных сетей для одной 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 для реализации, однако туплю жестко не могу понять, что не так... Нужна помощь!
Изображения:
Тип файла: jpg screen_13_03.jpg (51.9 Кб, 7 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 15.01.2013, 12:35
Аспирант
Отправить личное сообщение для Викториан Посмотреть профиль Найти все сообщения от Викториан
 
Регистрация: 09.04.2012
Сообщений: 65

Неужели никто не сталкивался с подобной проблемой?
Ответить с цитированием
  #3 (permalink)  
Старый 15.01.2013, 13:20
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Викториан, как вариант, напиши все в одну строку...

<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>
Ответить с цитированием
  #4 (permalink)  
Старый 15.01.2013, 19:36
Аспирант
Отправить личное сообщение для Викториан Посмотреть профиль Найти все сообщения от Викториан
 
Регистрация: 09.04.2012
Сообщений: 65

Я писал в одну, но та же самая фигня, ошибка. Писал просто '<span></span>'; и все равно выдавало, что тег не открыт... Не понимаю что не так.
Ответить с цитированием
  #5 (permalink)  
Старый 15.01.2013, 19:54
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<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>
Ответить с цитированием
  #6 (permalink)  
Старый 15.01.2013, 19:56
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

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

Последний раз редактировалось dmitriymar, 15.01.2013 в 19:58.
Ответить с цитированием
  #7 (permalink)  
Старый 15.01.2013, 20:26
Аспирант
Отправить личное сообщение для Викториан Посмотреть профиль Найти все сообщения от Викториан
 
Регистрация: 09.04.2012
Сообщений: 65

Сообщение от dmitriymar Посмотреть сообщение
А кто сказал, что валидаторы всегда правильно отслеживают ошибку и место ошибки?
Я не спорю, но проверять не будут при помощи программиста, а при помощи валидатора. Человвек, которому я делаю плагин не возьмет, если валидатор будет ругаться. А если валидатор пишет, что ошибка, человеку, далекому от программирования все равно не получится объяснить, что по логике все правильно.
Ответить с цитированием
  #8 (permalink)  
Старый 15.01.2013, 20:29
Аспирант
Отправить личное сообщение для Викториан Посмотреть профиль Найти все сообщения от Викториан
 
Регистрация: 09.04.2012
Сообщений: 65

Сообщение от Deff Посмотреть сообщение
<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.
Ответить с цитированием
  #9 (permalink)  
Старый 15.01.2013, 20:32
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<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="&lt;span class=\"yashare-auto-init\" data-yashareL10n=\"ru\" data-yashareType=\"none\" data-yashareQuickServices=\"vkontakte,facebook,twitter,odnoklassniki,moimir,lj,gplus\"&gt;&lt;/span&gt;";
obj("share_span").innerHTML=a.toString();
</script>

Последний раз редактировалось Deff, 15.01.2013 в 20:47.
Ответить с цитированием
  #10 (permalink)  
Старый 15.01.2013, 20:44
Аспирант
Отправить личное сообщение для Викториан Посмотреть профиль Найти все сообщения от Викториан
 
Регистрация: 09.04.2012
Сообщений: 65

При таком варианте ошибки нет, но вместо кнопок выводится простой текст. Так как угловые скобки теперь стали лишь мнемониками (наверное). Я уже множество вариантов перепробовал, и через PHP, и через JS, если использовать не JS, то выдает три ошибки, так как элементы содержат недопустимые атрибуты. Муть какая-то получается. Сейчас пытаюсь написать свой компонент для "социальных кнопок".
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с шаблоном javascript HardStyle Общие вопросы Javascript 5 11.05.2012 04:08
Проблема с Javascript в компоненте RS Form!Pro bowa Общие вопросы Javascript 0 12.03.2012 17:09
Проблема с копированием сайта с JavaScript Tuhlom Events/DOM/Window 1 27.10.2011 14:10
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34