我在页脚上有addthis共享按钮的页面上有一个模式。
我在页面上有一个项目列表,当单击该项目时,将通过ajax向该模式填充内容。
我正在做的是在点击时动态更改addthis:url和addthis:title。
因此,这是简化到页脚的模式:
<div class="modal">
...
<div class="modal-footer">
<div class="addthis_toolbox addthis_default_style">
<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>
<a class="addthis_counter addthis_bubble_style"></a>
</div>
</div>
</div>
然后,当单击一个项目时,我传入一些变量以更改url和标题:
addthis.toolbox(".addthis_toolbox", null, { title: theTitle, url: theUrl });
问题是
<a class="addthis_counter addthis_bubble_style"></a>
这是末尾的计数泡沫:
url和标题更改就很好,但是计数器永远不会更改。
我已经提交了一个关于addthis的支持请求,其中缺少一个体面的答复,询问我是否调用过addthis.init(),是的……我当然做到了。共享栏已初始化且正在运行,但计数未更新。
在此处搜索网络和其他问题,以及关于addthis的文档,有许多种复杂的方式来处理基于Ajax的内容。
我的代码与示例之间的区别是,ajax内容包括实际的按钮,而我的则没有。我的共享工具栏仍保留在页面上,仅更改了addthis:url和addthis:title。
也许我错过了一些小步骤,或者也许这是一个错误,而不是我的错。
希望有人可能有一些见识。
编辑
我终于从addthis得到了回应,并指出这是不可能的。如果调用工具箱功能,则不会刷新计数。
但是下面的评论和答案中显示的Joseph的变通方法目前已解决了该问题,至少直到它们提供了更合适的解决方案为止。
最佳答案
经过大量的试验和错误之后,看来addthis.counter
方法是刷新计数器的方法。关于该方法的很少文献似乎仅指的是仅使用不带任何参数的方法(forum post I found),这可能会刷新静态共享元素的计数器(未确认)。但是,当您添加用于addthis.toolbox
方法调用的相同属性时,它将正确刷新计数器。当您调用counter
方法时,您必须提供计数器的类而不是工具箱。例如addthis.counter('.addthis_counter', null, { url: 'http://example.com'});
官方文档可以在这里找到:http://support.addthis.com/customer/portal/articles/1365325-rendering-tools-with-javascript
这是摘要代码:
的HTML
<!-- Go to www.addthis.com/dashboard to customize your tools -->
<div class="addthis_toolbox addthis_default_style">
<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>
<a class="addthis_counter addthis_bubble_style"></a>
</div>
<input type="text" value="http://example.com">
的JavaScript
$(function(){
addthis_config = addthis_config || { };
addthis_config.pubid = prompt('Provide pubid:');
addthis.init();
$('input').on('input',function(){
$(".addthis_toolbox .addthis_counter").replaceWith('<a class="addthis_counter addthis_bubble_style"></a>');
addthis.toolbox(".addthis_toolbox", null, { title: 'test', url: this.value });
addthis.counter('.addthis_counter', null, { url: this.value });
}).trigger('input');
});
请注意,JavaScript会提示您输入发布号。这仅用于演示,您可以为您的应用程序将其更改为
addthis_config.pubid = 'xx-xxxxxxxxxxxxxxxx';
。演示版
jsfiddle
关于javascript - 在addthis共享栏上动态更改URL可以用于除共享计数以外的所有共享,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32954562/