AddThis Wordpress插件不支持AJAX主题

时间:2013-05-21 19:23:53

标签: javascript ajax wordpress plugins addthis

我正在使用AddThis Wordpress插件在AJAX主题中的每个帖子下面包含共享按钮,并且无法正确获取代码。

我在设置页面的自定义按钮字段中插入了以下代码:

<div class="addthis_toolbox addthis_default_style" id="toolbox">
    <a class="addthis_button_preferred_1"></a>
    <a class="addthis_button_preferred_2"></a>
    <a class="addthis_button_preferred_3"></a>
    <a class="addthis_button_preferred_4"></a>
    <a class="addthis_button_compact"></a>
</div>

然后在主页PHP文件的post循环中我有这个:

<script>
    var tbx = document.getElementById("toolbox"),
    svcs = {email: 'Email', print: 'Print', facebook: 'Facebook', expanded: 'More'};

    for (var s in svcs) {
        tbx.innerHTML += '<a class="addthis_button_'+s+'">'+svcs[s]+'</a>';
    });

    function ReinitializeAddThis() {
        if (window.addthis) {
            window.addthis.toolbox("#toolbox");
        }
    }
</script>
<iframe style="display: none;" onload="ReinitializeAddThis();"></iframe>

按钮只会偶尔加载,刷新后会消失。我也收到了错误 Uncaught ReferenceError:ReinitializeAddThis is not defined 这令人困惑......我真的很感激任何见解,如果有什么不清楚我会道歉。谢谢!

1 个答案:

答案 0 :(得分:0)

我已经找到了解决方案,所以我会在这里发布,以防任何人遇到同样的问题。

在AddThis设置页面上,我将此代码粘贴到“自定义按钮”字段中:

<div class="addthis_toolbox addthis_default_style" id="toolbox">
    <a class="addthis_button_preferred_1"></a>
    <a class="addthis_button_preferred_2"></a>
    <a class="addthis_button_preferred_3"></a>
    <a class="addthis_button_preferred_4"></a>
    <a class="addthis_button_compact"></a>
</div>

然后在主页面PHP文件中的post循环中:

<script type="text/javascript">
        $(document).ajaxComplete(function(){
            console.log("All AJAX requests completed");

            if (window.addthis) {
                window.addthis.toolbox(".addthis_toolbox addthis_default_style");
                console.log("AddThis rendered")

            };
        });
        var tbx = document.getElementById("toolbox"),
            svcs = {email: 'Email', print: 'Print', facebook: 'Facebook', expanded: 'More'};

        for (var s in svcs) {
            tbx.innerHTML += '<a class="addthis_button_'+s+'">'+svcs[s]+'</a>';
        };
    </script>

这会为每个帖子调用window.addthis.toolbox()函数,并在AJAX按指定on this page呈现后创建共享工具箱。