0

Facebook Javascript-SDK(サーバーから非同期にロードされる)を使用すると、奇妙な効果が得られます。

SDKを介してFBに正常にログインした後、FB-Logout-Buttonはピクセル単位で右から左および後ろに移動します。

ログイン/ログアウトボタンは次のように宣言されます。

<fb:login-button size="large" autologoutlink="true" perms="email,user_birthday,status_update,publish_stream"></fb:login-button>

Firebugでスクリプトを停止すると、M6XESwM2V2D.jsというJavaScriptファイルが作成され、次のコード行に表示されます。

__d("PluginResize",["Log","UnverifiedXD","bind","copyProperties","curry"],function(a,b,c,d,e,f){var g=b('Log'),h=b('UnverifiedXD'),i=b('bind'),j=b('copyProperties'),k=b('curry');function l(o){o=o||document.body;return o.offsetWidth+o.offsetLeft;}function m(o){o=o||document.body;return o.offsetHeight+o.offsetTop;}function n(o,p,event){this.calcWidth=o||l;this.calcHeight=p||m;this.width=undefined;this.height=undefined;this.event=event||'resize';}j(n.prototype,{resize:function(){var o=this.calcWidth(),p=this.calcHeight();if(o!==this.width||p!==this.height){g.debug('Resizing Plugin: (%s, %s, %s)',o,p,this.event);this.width=o;this.height=p;h.send({type:this.event,width:o,height:p});}return this;},auto:function(o){setInterval(i(this,this.resize),o||250);return this;}});n.auto=function(o,p,event){return new n(k(l,o),k(m,o),event).resize().auto(p);};e.exports=n;});

javascript-debuggerでコードを停止すると、ボタンの移動が(予想どおりに)停止し、コードを続行するとボタンが移動します。上記の印刷されたjavascript-Codeには、setInterval-Methodの呼び出しがあります。だから、これは行動を説明することができます。しかし、なぜ彼らはこのようなことをするのですか?

この効果を止めるにはどうすればよいですか?

4

2 に答える 2

1

ところで - style="position:fixed;" を追加 ログインボタンに私を助けました:

<fb:login-button autologoutlink="true" style="position: fixed;"></fb:login-button>

乾杯、KT。

于 2012-07-12T13:00:28.703 に答える
1

私は実際に私のウェブサイトで同じ問題を抱えています。Facebookのバグのようです。私はそれをバグとして提起しました:

https://developers.facebook.com/bugs/302726826490772

于 2012-07-10T09:12:16.157 に答える