9

http://sharethis.com/ボタンを使用して、Web サイトのユーザーにコンテンツを共有する簡単な方法を提供しています。

ここに「カスタムボタン」に関する情報があります:http://help.sharethis.com/customization/custom-buttons

URL を指定するように見えますが、この例ではすべて、次のような html のみを持っています。

<span class="st_sharethis" st_url="http://mycustomurl.com" st_title="Sharing Rocks!"
displayText="ShareThis"></span>

しかし、ページをリロードせずにその場でボタンを動的に作成できる必要があります。

だから、私が構築しているフラッシュアプ​​リケーションには、共有ボタンを表示したい「ポップアップ」divを画面の中央にフェードさせるWebページ上のjavascript関数をトリガーする「共有ボタン」があります。誰かがクリックする共有ボタンに応じて、動的に作成された URL が必要になります。

彼らがダイアログを閉じてから共有ボタンをもう一度クリックすると、コードが古いコードを新しいボタンと新しいURL/タイトルで上書きするだけになることを願っています。

それで、フラッシュからURLを渡しながら、フラッシュから呼び出すこのjavascript関数を作成しました。ボタンがそのdiv内にレンダリングされることを期待して、スクリプトとすべてを「ポップアップ」div内に配置しました。

function shareChannel(theurl)
{
//I cant seem to find an example of what to put here to load the buttons, and give them a custom URL and title

//finally display the popup after the buttons are made and setup.
displaypopup();
}

ページをリロードせずにこれを行う方法の例を誰かが投稿できますか?

編集:@Cubed

<script type="text/javascript">
function shareChannel(chaan)
          {

          document.getElementById('spID1').setAttribute('st_url', 'http://mycustomurl?chan='+chaan);
          document.getElementById('spID1').setAttribute('st_title', 'Custom Title is ['+chann+'] it works!');

          stButtons.locateElements();

          centerPopupThree();
          loadPopupThree();
          }

</script>

基本的に何も起こりません。エラーメッセージの取得方法やデバッグ方法がまったくわからないため、javascriptの使用は嫌いです。フレックスを使用するときは、いじるのに最適なデバッガー/コンソールがあります。申し訳ありませんが、これ以上の情報を提供することができません。だけを削除すると気づきました

document.getElementById('spID1').setAttribute('st_url', 'http://mycustomurl?chan='+chaan);
              document.getElementById('spID1').setAttribute('st_title', 'Custom Title is ['+chann+'] it works!');

ポップアップが表示されます。

しかし、関数内に上記の setAttribute コードがある場合、ポップアップは表示されないため、そのコードの何かがそれを壊していると想定しています。助言がありますか?または、少なくともクロムを使用してエラーが何であるかを教えてくれる方法はありますか? インスペクト エレメント コンソールを試しましたが、関数をトリガーしたときに何も表示されませんでした。

また、私のコードの上部で、彼らは私に使用させました:

    <script type="text/javascript">var switchTo5x=true;</script>
<script type="text/javascript" src="http://w.sharethis.com/button/buttons.js">
</script><script type="text/javascript">stLight.options({publisher:'mypubidgoeshere'});</script>

stLight.locateElements();ではなく使用する必要があります stButtons.locateElements();

4

1 に答える 1

15

私は使用してきました

stButtons.locateElements();

AJAX を介してコンテンツをロードした後に新しいボタンを生成する機能、これでもうまくいくと思います。

この質問も役立つかもしれません:

Sharethis ボタンは、ajax 経由で読み込まれたページでは機能しません

より良い解決策:

<div>すべての に ID があることを確認してください。<span>それ以外の場合は、それらにクラスを与えることができますが、それらすべてを反復処理する必要があります。

function shareChannel(theurl, thetitle)
    {
    document.getElementById('spanID1').setAttribute('st_url', theurl);
    document.getElementById('spanID1').setAttribute('st_title', thetitle);

    stButtons.locateElements();

    //finally display the popup after the buttons are made and setup.
    displaypopup();
    }
于 2011-09-02T20:46:05.303 に答える