За последние 24 часа нас посетили 16887 программистов и 1641 робот. Сейчас ищут 858 программистов ...

Динамическое добавление скрипта

Тема в разделе "JavaScript и AJAX", создана пользователем masterlelik, 6 ноя 2013.

  1. masterlelik

    masterlelik Активный пользователь

    С нами с:
    8 ноя 2008
    Сообщения:
    68
    Симпатии:
    0
    Задача:
    есть набор превью картинок, при нажатии на картинку появляется в окно с полным размером. И под фотографией нужно поставить сервис "поделиться".

    Пытаюсь поставить сервис addthis, и он отображается только при первом клике на любую картинку, в дальнейшем, сервис отображается в нерабочем виде.
    Когда таким же методом подключаю аналогичный сервис (yashare), то все прекрасно работает (но yashare не устраивает). Может есть иной способ достижения цели? При открытии окна добавляю див и тег скрипт, а при закрытии очищаю див и убираю тег скрипт.

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

    Код (Text):
    1. function ShowLike(id)
    2. {
    3. // сначала добавляю служебный див, в который затем скрипт размещает свои кнопки
    4. document.getElementById(id).innerHTML='<div class="addthis_toolbox addthis_default_style"><a class="addthis_button_preferred_1"></a><a class="addthis_button_compact"></a><a class="addthis_counter addthis_bubble_style"></a></div>';
    5. var po = document.createElement("script");
    6. po.type = "text/javascript";
    7. po.async = true;
    8. po.src = "http://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4eed00471e2e3c9a";
    9. document.getElementById(id).appendChild(po);
    10. }
    11.  
    12. function HideLike(id)
    13. {
    14. var myNode = document.getElementById(id);
    15. while(myNode.firstChild != null) myNode.removeChild(myNode.firstChild);
    16. document.getElementById(id).innerHTML="";
    17. }