0

我正在使用 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这令人困惑......我真的很感激任何见解,如果有任何不清楚的地方我深表歉意。谢谢!

4

1 回答 1

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 按照此页面上的指定呈现后创建一个共享工具箱。

于 2013-05-24T03:27:22.567 回答