13

すべての記事をAjaxでロードしていますが、Addthis機能が正しくありません

 $thisChild.load( permLink + ' #thePostStuff', function() {

そして、前述の.load()関数のコールバックで、Addthis共有機能を導入するために次のコードを追加しました。

var script = 'http://s7.addthis.com/js/300/addthis_widget.js?domready=1#pubid=MY-PUB-ID';
if (window.addthis){
    window.addthis = null;
}
$.getScript( script );

Addthisスクリプトをロードするajaxリクエストによって呼び出されるpermLinkファイルのコンテンツ内のコードは次のとおりです。

<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style addthis_32x32_style"
        addthis:url="<?php the_permalink(); ?>"
        addthis:title="<?php the_title(); ?>"
        addthis:description="<?php the_excerpt(); ?>"> 
    <a class="addthis_button_facebook"></a>
    <a class="addthis_button_twitter"></a>
    <a class="addthis_button_preferred_3"></a>
    <a class="addthis_button_compact"></a>
    <a class="addthis_counter addthis_bubble_style"></a>
</div>
<!-- AddThis Button END -->

問題は、addthisが期待どおりに読み込まれないことです。記事を最初に開いたときは正しく機能しますが、それ以外の場合(ページが更新されない限り)は、記事が共有された回数を示す数値を含めることができません。これは、要素を調べると次のように表示されます。<a class="addthis_button_expanded" target="_blank" title="View more services" href="#">1</a>

編集:

既知の修正を試みました$.getScript( script , function() { addthis.init(); });が、これでは問題は解決しませんでした。

2012年8月14日編集

ウェブサイトはhttp://epicvan.comで、作業中に修正を思い付かなかったため、番号を削除しました。プロジェクトは数か月前に完了したので、新しい答えをテストすることはしません。あなたが同じ問題に遭遇した場合、彼らがあなたを助けることができることを願っています!乾杯

4

9 に答える 9

36

私も同じ問題を抱えていました。以下で修正しました。それがあなたのためにもそれを修正することを願っています。

オリジナル:

    var script = 'http://s7.addthis.com/js/300/addthis_widget.js?domready=1#pubid=MY-PUB-ID';
if (window.addthis){
    window.addthis = null;
}
$.getScript( script );

新しい:

<script>
var script = 'http://s7.addthis.com/js/250/addthis_widget.js#domready=1';
if (window.addthis) {
    window.addthis = null;
    window._adr = null;
    window._atc = null;
    window._atd = null;
    window._ate = null;
    window._atr = null;
    window._atw = null;
}
$.getScript(script);
</script>
于 2012-08-14T23:45:47.590 に答える
5

ここにかなり詳細な説明を書きましたhttps://stackoverflow.com/a/16950881/1118070、要点はそれaddthis.toolbox(".addthis_toolbox"); が正しい解決策です 、新しいajaxコンテンツが読み込まれるたびに呼び出す必要があることに注意することが重要です。

html

 <div class="addthis_toolbox addthis_default_style ">
    <a class="addthis_button_facebook" style="cursor:pointer"></a> 
    <a class="addthis_button_twitter" style="cursor:pointer"></a> 
    <a class="addthis_button_email" style="cursor:pointer"></a>
 </div>

javascript

// onload of the ajax content
addthis.toolbox('.addthis_toolbox'); 

また、Facebookのようなカウンターなどのiframeとして読み込まれるものはすべて、「。addthis_toolbox」コンテナー内にネストされていると問題が発生することに注意してください。独自のコンテナ内に配置し、両方でtoolbox()メソッドを呼び出すことをお勧めします。

詳細については、私のリンクを参照してください。

于 2013-06-06T15:17:31.683 に答える
4

カスタムコードを1時間試した後、これが完璧に機能することがわかりました。

$(document).ajaxStop(function() {
  if (window.addthis) {
    window.addthis = null;
    window._adr = null;
    window._atc = null;
    window._atd = null;
    window._ate = null;
    window._atr = null;
    window._atw = null;
  }
  return $.getScript("http://s7.addthis.com/js/300/addthis_widget.js#pubid=sdive");
});

これがソースです

于 2014-09-27T17:37:36.643 に答える
2

このリンクで提供されている解決策を試してください、

http://support.addthis.com/customer/portal/questions/399867-addthis-and-ajax-with-addthis-toolbox-

<script type="text/javascript">addthis.toolbox('.addthis_toolbox');</script>
        <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=vijayk"></script>

私も同じ問題に直面していたので。しかし、それは上記の行によって解決されます。これがお役に立てば幸いです。

ありがとう、Vijay

于 2013-03-14T15:48:58.793 に答える
1
addthis.toolbox(".addthis_toolbox");
于 2013-04-28T13:38:04.220 に答える
1

問題は、ajax呼び出しで#pubidが失われるため、AddThisは誰が呼び出しを行っているのかわからないことです。

これは私のために働いた:

<script>
$.getScript("https://s7.addthis.com/js/300/addthis_widget.js#pubid=YOUR-ID", function () {
    addthis_config = { pubid: 'YOUR-ID' };
    addthis.init();
});
</script>

addthis.comのサポートサイトでこの問題の答えを見つけました:http ://support.addthis.com/customer/portal/questions/240144-email-template-when-using-ajax-bug-?t = 89322

于 2015-11-10T13:47:17.457 に答える
0

先日、このサポート投稿を読みました。問題に関係している可能性があります: http ://support.addthis.com/customer/portal/questions/240144-email-template-when-using-ajax-bug-?t = 89322

私が正しく理解していれば、最初の共有後、ウィジェットはプロファイルから切断され、将来のすべての共有(更新なし)は追跡されない、などと彼は説明しています。彼の解決策は、パブを個別に宣言することでした。これがまったく役立つかどうかはわかりませんが、私がこのテーマで見つけたものをあなたに見せても害はないと思いました:)

于 2012-08-14T21:41:05.403 に答える
0

私としてこの質問にたどり着いた人たちにとって、私のために働いたコードは次のとおりでした。

<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=XXXXXXXXXXXXXXXXX"></script>
<script>
if (window.addthis) {
    // for others time force addthis to run again
    window.addthis.toolbox('.addthis_toolbox');
} else {
   // in the first time use autoload bu addthis
}
</script>
于 2013-04-08T15:16:45.887 に答える
0

AJAX呼び出しの後にこのコード行を実行すると、次のようになります。

addthis.layers.refresh();

以下は私のセットアップですAddThis

脚本

<script type="text/javascript" 
        src="//s7.addthis.com/js/300/addthis_widget.js#pubid=<my_pub_id>">
</script>

AddThisこのコードを表示したい場所に配置します

<div class="addthis_inline_share_toolbox_tvqk"></div>

AJAX呼び出しの方法

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState === 4 && this.status === 200) {

        // Update the DOM

        if (typeof(addthis) != 'undefined' && addthis != null) 
            addthis.layers.refresh();
    }
};
xhttp.open("POST", "<address_to_post_back_to>", true);
xhttp.send(<post_data>);

結果

ここに画像の説明を入力してください

于 2017-08-24T04:01:02.097 に答える