我使用jQuery facebox打開一個新的窗口,在我的Rails應用程序驗證Facebook用戶與Devise/Omniauth加載一個iframe。顯示微調而在facebox
起初我想在一個div來簡單地加載這個像這樣:
$('#facebook-auth').live 'click', ->
$.facebox '<div id="foo"></div>'
$('#foo').load $(this).attr 'href'
false
但問題是,這是行不通的,因爲有多個重定向。第一個鏈接打開/auth/facebook
,其重定向到graph.facebook.com
,其重定向回我的回調URL,並最終重定向到一個確認頁面。我需要向用戶顯示確認頁面。我的方式是正確的,現在的工作是通過打開這樣的一個對外窗口:
$('#facebook-auth').live 'click', ->
width = 600
height = 400
left = (screen.width/2) - (width/2)
top = (screen.height/2) - (height/2)
window.open $(this).attr('href'), 'authPopup', "menubar=no,toolbar=no,status=no,width=#{width},height=#{height},toolbar=no,left=#{left},top=#{top}"
false
有我的方式來打開一個新窗口,並在facebox加載其內容是什麼?還是有更好的方法?
編輯
感謝Jared的建議,我能夠從here做到這一點使用一個iFrame國防部。見this jsFiddle。不過,我想在加載iframe內容時顯示加載微調器。這可能嗎?根據文檔,通常這樣做的方式是這樣的:
$(".badge").live "click", ->
$.facebox ->
$.get "page.html", (data) ->
$.facebox data
false
但我不知道如何使用iframe mod來做到這一點。
你可以使用在Facebox我相信一個IFRAME。 –
感謝幫助。 – CodeWombat
你是否控制確認頁面? – invertedSpear