当用户点击分享时,动态设置AddThis的URL

4
我希望在用户单击分享时,向AddThis共享的URL添加一些URL参数(我正在滑块中显示一些图像,如果用户单击分享,我想将图像编号附加到URL中,以便URL带您转到用户共享的实际图像)。我尝试使用AddThis事件API并在用户即将分享的事件发生时通知我。我尝试在那个时间点更改URL,但它不会更新URL。(似乎如果我再次分享,它会将其更改为我先前设置的内容,但这也会过时。)实现此目的的最佳方法是什么?如果不能通过AddThis实现,任何其他支持常见社交媒体平台(Facebook,Twitter,Pinterest,电子邮件等)的更好方法也可以。
   function updateAddThisUrl()
   {
       //slide_no is the variable I am adding as a URL parameter
       var location = window.location;
       var theUrl = location.protocol + '//' + location.host + location.pathname + "?image=" + slide_no;

       addthis_share = {url : theUrl};
       addthis.update('share', 'url', theUrl);
       addthis.url = theUrl; 
       addthis.ready();         
   }

   function eventHandler(evt) 
   { 
       updateAddThisUrl();
   }

   addthis.addEventListener('addthis.menu.share', eventHandler);

以上更新仅适用于后续分享的URL,因此仅在用户再次单击分享时生效(此时它又过时了,因为会有新的图像和新的URL参数)。我还尝试使用 addthis.menu.open,但效果相同,所以我猜它是在那之前获取URL。我还注意到,如果我从addthis弹出菜单中选择电子邮件,则不会触发addthis.menu.share事件。

1个回答

4

您可以通过调用函数addthis.update来更新您的addthis网址:

// only have to change the window.location.href bit
addthis.update('share', 'url', window.location.href); 
addthis.ready(); // This will re-render the box.

这就是我在收到事件时已经在做的事情。当前的共享URL没有得到更新。 - jbx
我也遇到了同样的问题,我尝试调用这个函数、动态添加og meta标签、将addthis:url添加到容器甚至每个分享链接中,但是当我尝试分享时仍然得到原始URL。有什么想法吗? - Guy
在您页面上的每个分享工具箱上设置“addthis:url”和“addthis:title”,并调用:addthis.toolbox(“.addthis_toolbox”); 不要更改选择器。请参见我的示例http://jsfiddle.net/bs7g9rm8/。 - HostedMetrics.com

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接