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

Addthis is Undefined when I use addthis, When I load page by Ajax

我尝试在拨打 ajax 电话时显示 'addthis sharing' 按钮。在 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>

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

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

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

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

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

-马特

添加此支持

我已经解决了这个问题。

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

  1. _布局
  2. 查看
  3. _partialview

我在 _partialView 中添加了这个 Js 引用和按钮的 Div。

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

Hare 完整示例:

查看:

    <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'。