0

我在单页应用程序上使用了 sharethis 悬停小部件(显示:固定)和 jQuery 地址。所有请求都是 pushState 并通过 ajax 加载。因此,当用户从 pageA.html 转到 pageB.html 时,地址会通过 pushState 更新。但是,当我单击“共享到 facebook”上的某个页面时,我进入网站的页面正在共享,而不是当前页面。这个现象可以在这个网站上看到。

我在存储 url、标题等的 stWidget 对象中进行了搜索,但我找不到它。Sharethis 对此非常保密,并一直引用此页面,但这仅说明如何在 ajax 加载的内容中激活小部件,而不是如何使用新地址、标题等更新小部件或如何修改它。

4

1 回答 1

1

最后我做了一个这样的处理程序。这很愚蠢,因为它删除了按钮并再次添加它们,而不是仅仅更改变量。我仍然不明白为什么他们对刷新按钮的变量这样简单的过程如此保密。

function updateShareThisButtons() {

    var services = [];
    services.push("facebook", "googleplus","twitter","pinterest", "email", "sharethis");
    if($('#sthoverbuttons-chicklets').length == 0)
        $('.sthoverbuttons-chicklets').attr('id','sthoverbuttons-chicklets')

    $('#sthoverbuttons-chicklets').html('');
    for (var i = 0; i < services.length; i++) {
          stWidget.addEntry({"service":services[i],"element":document.getElementById('sthoverbuttons-chicklets'),"url":$.address.baseURL(),"title":$.address.title(), "type":"large","summary":"summary"});
    };
}
于 2013-03-23T09:40:56.210 回答