4

AddThis によって共有される URL にいくつかの URL パラメーターを追加したいのですが、これらのパラメーターは、ユーザーが共有をクリックした時点でしかわかりません。(スライダーにいくつかの画像が表示されています。ユーザーが共有をクリックした場合、URLに画像番号を追加して、URLがユーザーが共有した実際の画像に移動するようにします)。

AddThis Event 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.menu.shareまた、addthis ポップアップ メニューから電子メールを選択すると、イベントがトリガーされないことにも気付きました。

4

1 に答える 1

4

関数を呼び出して addthis url を更新できますaddthis.update

// only have to change the window.location.href bit
addthis.update('share', 'url', window.location.href); 
addthis.ready(); // This will re-render the box.
于 2013-08-08T13:14:41.667 に答える