私は Facebook からの非同期スクリプト読み込み技術を使用して、コンテナが読み込まれた ajax ページにダイナミックにいいねボタンを表示しています。初めてサイトをロードすると、ボタンが正しく表示されます..
..しかし、html('')を使用して親コンテナからページをアンロードし、同じ方法で再度ロードすると、いいねボタンはもう初期化されません。Firebug は、スクリプトが正しい div にロードされたが実行されなかったことを示しています。
次のようなボタンを保持しているサブページを読み込みます (ini とサイト ナビゲーションでも同じです)。
$.ajax({
url: url+'holdslikebutton.php?rnd='+Math.random()+'&ajax=yes',
//cache: false,
success: function(data) {
showFBButton();
}
});
いいねボタンのスクリプトは次のようになります。
function showFBButton() {
var html =
'<div id="fb-button">'
+ '<div class="fb-like" data-href="https://www.facebook.com/xxx" data-send="false" data-layout="button_count" data-width="70" data-show-faces="false" data-action="like"></div>'
+ '<div id="fb-root"></div>'
+ '</div>';
$('#fb-viewport').html(html);
window.setTimeout( function () {
var e = document.createElement( 'script' );
e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/'+fblang+'/all.js#'+Math.random()+'&xfbml=1&appId=xxx';
document.getElementById( 'fb-root' ).appendChild( e );
document.getElementById( 'fb-button' ).removeAttribute( 'class' );
}, 2000 );
return true;
};
ナビゲーションごとにサイトの間から holdlikebutton.php をロードすると、スクリプトが初期化されないのはなぜですか。all.js の実行をトリガーするために必要なことはありますか? しかし、なぜそれは browser-url または browser reload を使用してサイトを外部からロードすることに取り組んでいるのでしょうか。
複雑ではありません。たぶん私は何かを監督していますか?私は立ち往生しており、この問題を解決する方法を考えていただければ幸いです。