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

时间:2013-08-08 13:08:03

标签: addthis

我希望将一些URL参数附加到要由AddThis共享的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 个答案:

答案 0 :(得分: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.