当我使用addthis时,Addthis是未定义的,当我通过Ajax

时间:2016-01-08 19:51:27

标签: javascript social addthis

我尝试展示“添加此分享”#39;进行ajax调用时的按钮。在ajax的第一次调用中,按钮没有显示,但是当我重新加载整个页面时一切正常,按钮是正确的位置。

我搜索了很多修复但没有人适合我。 其中一个是 addthis.toolbox();或者window.addthis 但是当我使用word addthis insde JavaScript标签时,浏览器调试器会写错误' addthis is undefined'。

请给我明智的建议,我该怎么办?

代码(它是从ajax调用加载的局部视图):

<script type="text/javascript" src="http://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-xxxxx" async="async"></script>

<div class="addthis_sharing_toolbox"></div>

<script>
 addthis.toolbox(); // addthis - is undefined
</script>

error screen

2 个答案:

答案 0 :(得分:4)

我已经解决了这个问题。

在我的项目中,我有3个视图级别

  1. _layout
  2. 查看
  3. _partialview
  4. 我在_partialView中添加了这个Js参考和按钮的Div。

    但是,当我将Js引用移动到View并更改Url(添加 - &amp; async = 1)时,它工作正常,现在'addthis' - 已定义(直到此处未定义)。

    野兔就是一个完整的例子:

    查看:

        <script type="text/javascript" src="http://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-'yourPubId'&async=1"></script>
    //Some Code 
    

    _partialView:

    //Some Code 
    <div class="addthis_sharing_toolbox"></div>
    
    <script>
        $(function() {
            addthis.init(); 
            addthis.layers.refresh(); 
          });
    </script>
    

    祝你好运,当你通过Ajax加载页面时,每个人都可以使用这个完美的插件'addthis'。

答案 1 :(得分:2)

您正在使用的addthis_widget.js脚本的异步版本旨在用于较新的仪表板工具,因为对addthis.toolbox()的调用未定义,因为AddThis还没有完全加载。如果删除async =&#34; async&#34;从脚本,它应该工作。

或者,您可以这样添加async属性:

&#13;
&#13;
let utf8str = "0xe04f" // your value coming from quesimage

let emojiStr = String(format: "%C", arguments: [utf8str])
print(emojiStr) // ⑰
lblEmoji!.text = emojiStr
&#13;
&#13;
&#13;

然后在调用addthis.toolbox()之前,请确保调用addthis.init()。

https://www.addthis.com/blog/2013/05/07/a-brief-history-of-using-addthis-dynamically/

-Matt

添加此支持