我的网络应用程序使用
<fb:login-button>
它是 XFBML(扩展 Facebook 标记语言)并呈现为:
<fb:login-button login_text="" class=" fb_iframe_widget" fb-xfbml-state="parsed" fb-iframe-plugin-query="app_id=[my app ID]&locale=en_US&login_text=%0A%20%20%20%20%20%20%20%20&sdk=joey&><span style="vertical-align: top; width: 0px; height: 0px;"><iframe name="f1987cba84" width="1000px" height="1000px" frameborder="0" allowtransparency="true" scrolling="no" title="fb:login_button Facebook Social Plugin" src="http://www.facebook.com/plugins/login_button.php?app_id=[my app ID]&channel=http%3A%2F%2Fstatic.ak.facebook.com%2Fconnect%2Fxd_arbiter.php%3Fversion%3D27%23cb%3Df15dab5c84%26domain%3Dmyapp.com%26origin%3Dhttp%253A%252F%252Fmyapp.com%252Ff1e9e1d5b8%26relation%3Dparent.parent&locale=en_US&login_text=%0A%20%20%20%20%20%20%20%20&sdk=joey&size=xlarge" style="border: none; visibility: hidden;"></iframe></span></fb:login-button>"
出于某种原因,该按钮包含一个 1000 x 1000 像素的 iframe。当然,这实际上并不会在网页上显示为 1000 x 1000 像素,但足以让所有浏览器在按钮渲染时在页面加载时临时显示滚动条。
有没有办法阻止这个滚动条闪烁,除了隐藏滚动条在 CSS 中使用overflow:hidden
,然后document.body.style.overflow = 'visible';
在按钮完成渲染后在 Javascript 中设置?