1

私は無限スクロールを使用しており、実行時にロードする要素内に Facebook のようなボタンがあります。スクリプトを初めて呼び出すとすべてが機能しますが、複数回ロードできないように見えるため、スクロール時に作成された要素には、スクリプトがロードされたときに存在しないため、機能する Facebook ボタンがありません。より多くのコンテンツがロードされた後にこれを行っても何も起こりません。

スクリプト ( http://connect.facebook.net/en_GB/all.js ) を見ると、スクリプトはページごとに 1 回しか実行されないように見えますが、これを回避する方法はありますか?

私のコード:

var js, fjs = d.getElementsByTagName(s)[0];   
js = d.createElement(s); js.id = id;
js.async=true;  
js.src = "http://connect.facebook.net/en_GB/all.js#xfbml=1&appId=xxxxxxxxxxxxx";
fjs.parentNode.insertBefore(js, fjs);

簡単な解決策は、FB.XFBML.parse という関数を提供する JavaScript SDK であることは承知しています。

FB.XFBML.parse

無限スクロール関数が呼び出されたら、この関数を再度呼び出して新しいプラグインをレンダリングするだけで、より多くのデータを読み込むことができます。しかし、この解析は、以前にページに読み込まれたボタンのようなものすべてです。したがって、既存の 20 個のいいねボタンがある場合、スクロールして Parse 関数を呼び出した後、さらに 10 個のいいねボタンが作成されますが、前のボタンも解析されます。

では、どうすればこれを回避できますか?

4

1 に答える 1