我們希望有一個位置固定的DOM元素:固定在我們的Facebook畫布應用程序中,並具有流暢的畫布大小。因爲應用程序在canvas iframe中運行,所以只需使用一個簡單的css位置:fixed不起作用:iframe內容不會從周圍的Facebook頁面看到任何滾動事件。位置:固定在Facebook畫布(iframe)
解決這個第一種方法是ping通Facebook的API,並獲得滾動位置。所以我們把它放到$(document).ready()中:
# refresh position of feedback button to simulate position:fixed in iframe
refresh_timer = 1000
move_button =() ->
# get scroll position from facebook
FB.Canvas.getPageInfo (info)->
# animate button to new position with an offset of 250px
$('#fdbk_tab').animate({top: info.scrollTop+250}, 100)
# start interval to do the refresh
setInterval(move_button, refresh_timer)
一般情況下,這是行不通的。但是,當觸發Facebook api的調用時,由於瀏覽器重新加載按鈕和鼠標指針閃爍,導致用戶體驗不佳。
有關如何改進此方法或其他方法來實現/模仿位置的任何建議:固定在iframe中的高度讚賞!
作爲解決方法,我們切換回固定高度的畫布應用程序。這樣iframe擁有自己的滾動條和位置:固定作品。但是這種方法有一些其他的小缺點。所以我仍然感興趣的是,如果可以通過液體高度應用程序來解決問題。 – 2012-03-14 13:18:21
我試圖使用相同的方法來定位我的Facebook iFrame中的固定元素,並且好像我面臨一個新問題 - >在我的開發人員控制檯中顯示的是「Uncaught SecurityError:阻止了一個源於框架」mydomain.com「框架來源「facebook.com」,被訪問的框架將「document.domain」設置爲「facebook.com」,但是請求訪問的框架沒有設置,都必須將「document.domain」設置爲相同的值以允許訪問。 「你也遇到過嗎? – 2015-08-26 08:44:09