2011-09-01 16 views
13

मैं jQuery facebox उपयोग कर रहा हूँ मेरी रेल अनुप्रयोग में 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 ले जाती है, जो मेरे कॉलबैक यूआरएल है, जो अंत में एक पुष्टिकरण पृष्ठ पर रीडायरेक्ट करने के लिए वापस पुनर्निर्देश। मुझे उपयोगकर्ता को पुष्टिकरण पृष्ठ प्रदर्शित करने की आवश्यकता है।

$('#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 में इसकी सामग्री लोड करने के लिए है: जिस तरह से मैं यह अभी काम इस तरह एक बाहरी खिड़की खोलने से है? या क्या एक बेहतर दृष्टिकोण है?

संपादित

जारेड के सुझाव के लिए धन्यवाद मैं here से एक iFrame आधुनिक का उपयोग कर ऐसा करने में सक्षम था। this jsFiddle देखें। हालांकि अगर आईफ्रेम सामग्री लोड हो रही है तो मैं लोडिंग स्पिनर दिखाना चाहता हूं। क्या यह संभव है? प्रलेखन के अनुसार, जिस तरह से यह सामान्य रूप से करने के लिए इस तरह है:

$(".badge").live "click", -> 
    $.facebox -> 
    $.get "page.html", (data) -> 
     $.facebox data 
    false 

लेकिन मैं कैसे iframe आधुनिक के साथ ऐसा करना यकीन नहीं है।

+4

आप Facebox मेरा मानना ​​है कि में IFRAME का उपयोग कर सकते हैं। –

+0

धन्यवाद जिसने मदद की। – CodeWombat

+0

आप पुष्टि पृष्ठ नियंत्रित करते हैं? – invertedSpear

उत्तर

35

इस सीएसएस चाल की कोशिश .. यह तुम क्या करने की कोशिश कर रहे है?

http://jsfiddle.net/7CBjn/3/

iframe { 
    background-image: url("http://jimpunk.net/Loading/wp-content/uploads/loading2.gif"); 
    background-repeat: no-repeat; 
    background-position: 50% 50%; 
} 
+0

यह सुंदर चतुर है, मैं इस यह काम कर सकता है लगता है। – CodeWombat

+1

ध्यान दें कि लोडिंग gif अब काम नहीं कर रहा है ... इसलिए कोई भी जो इसे करने का प्रयास करता है, परीक्षण करते समय बस एक नई छवि से लिंक करें। – HappyCoder

0

ठीक है, आप शायद एक स्पिनर दिखा सकते हैं, फिर लगातार जांचें कि क्या आईफ्रेम लोड हो रहा है या आईफ्रेम के ऑनलोड ईवेंट हैंडलर का उपयोग करें।

पूरी तरह से सुनिश्चित नहीं है कि यह रीडायरेक्ट के साथ कैसे काम करेगा, लेकिन आप that की तरह smth कोशिश कर सकते हैं।

+0

दिए गए लिंक टूटी हुई है। –

संबंधित मुद्दे