Кнопки AddThis не будут обновляться для включения фрагмента (#Hash Tag) - PullRequest
3 голосов
/ 22 сентября 2011

У меня есть эти кнопки AddThis на моем веб-сайте, и мой сайт использует JS, чтобы получить пользователя через галерею изображений, при изменении изображения URL-адрес обновляется с заголовком изображения в элементе фрагмента, проблема у меня заключается в следующемне отражается в ссылках AddThis.Я пытался получить ответы на форумах AddThis, но мне было указано на документацию по API и функцию addthis.toolbox (), но мне это не помогло, поэтому я решил запустить егомимо экспертов здесь.

Это мой код AddThis на базовой странице.

<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style addthis_32x32_style">
<a class="addthis_button_preferred_1 add_this_but"></a>
<a class="addthis_button_preferred_2 add_this_but"></a>
<a class="addthis_button_preferred_3 add_this_but"></a>
<a class="addthis_button_preferred_4 add_this_but"></a>
<a class="addthis_button_compact add_this_but"></a>
<a class="addthis_counter addthis_bubble_style"></a>
</div>
<script type="text/javascript">var addthis_config = {"data_track_clickback":false};</script>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4e77111e2de880eb"></script>

<!-- AddThis Button END -->

В моем скрипте JS, когда пользователь меняет изображение, я добавил это в функцию.

addthis.toolbox(".addthis_toolbox");

Я также пробовал это

addthis.toolbox();

При выполнении кода я не получаю ошибок JS, но не вижу никаких обновлений кнопок AddThis.

Вы можете увидеть проблему здесь.

http://www.martynazoltaszek.com/artpages?nid=30#Rendezvouz

Эта ссылка откроет сайт на определенном изображении под названием «Rendezvouz», но nid = 30 на самом деледругое изображение, которое называется «Ходьба». Проблема, показанная AddThis (Facebook), всегда будет ссылаться на изображение «Ходьба по». AddThis Gmail выглядит нормально, но я не думаю, что это является фактором API, так как он работаетс или без вышеуказанного вызова функции.

Заранее спасибо.

ps Причиной использования переменной GET и фрагмента Fid является причина загрузки страницы php и просмотра JS (без ссылки на страницу), но это также оставляет поддержку не JS-браузера.

1 Ответ

12 голосов
/ 10 октября 2011

У меня была похожая проблема при использовании hashbangs для сайта, управляемого javascript. Этот код был использован, потому что кнопки общего доступа не будут перерисовываться при асинхронной загрузке контента. Вы должны быть в состоянии принять часть этого, чтобы соответствовать вашей ситуации. Может быть, просто addthis.update() код

Сначала я изменил скрипт для addThis на async

http://s7.addthis.com/js/250/addthis_widget.js#async=1

Как только DOM загрузится, прослушайте hashchanges, здесь мы обновим детали этого общего ресурса.

Для этого бита могут потребоваться дополнительные плагины для работы со старыми браузерами, рассмотрим событие hashchange jQuery - v1.3 - 21.07.2010 - http://benalman.com/projects/jquery-hashchange-plugin/

Теперь все готово для смены хеша, следующий шаг - изменить addThis.

    $(function(){
        $(window).hashchange(function(){
            if($('body').hasClass('addThis')){
                addthis.ost = 0;
                addthis.update('share', 'url', window.location.href); // new url
                addthis.update('share', 'title', window.document.title); // new title.
                addthis.ready(); // this will re-render the buttons.
            }
            else {
                addthis.init();
                $('body').addClass('addThis');
            }
        });
        addthis.init() //As we've changed the addthis to async, you will have to call addthis.init() once the DOM has loaded.
    });

Надеюсь, это поможет.

...