我使用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