1

我有一个页面,它使用 AJAX 请求和 JQuery 动态提取内容。加载内容后,我使用 colorbox 的完整功能来加载所需的任何脚本。我要加载的其中一件事是 ShareThis 按钮,我的标记是这样的:

HTML

<span class="st_sharethis_custom"></span>

在 colorbox 的 onComplete 函数里面我有这个。

  $.getScript("http://w.sharethis.com/button/buttons.js", function() {});
  var switchTo5x=false;
  stLight.options({publisher: "ur-a4a2b4d1-36da-c1a3-4eee-8eedd1e95feb"});

当我运行灯箱并将鼠标悬停在 ShareThis 按钮上时,出现以下错误。

stButtons.messageQueueInstance 为空

对此的任何帮助将不胜感激。

谢谢

4

2 回答 2

4

您可能已经调用了 button.js 两次。一个在主页中,另一个在 ajax 页面中。你可以试着打电话stButtons.locateElements()

于 2012-09-11T06:24:58.700 回答
2

getScript异步加载脚本。stLight.option()因此,在脚本加载之前调用您的代码。尝试将您的代码更改为:

$.getScript("http://w.sharethis.com/button/buttons.js", function() {
    var switchTo5x = false;
    stLight.options({publisher: "ur-a4a2b4d1-36da-c1a3-4eee-8eedd1e95feb"});
});

这告诉 jQueryinitialisation(stLight.options())在完成getScript()调用后运行你。

于 2012-07-14T08:56:07.163 回答