2010-03-05 8 views
10

क्या जावास्क्रिप्ट window.opener संपत्ति ब्राउज़र पर विश्वसनीय रूप से उपलब्ध है, और किसी भी सुरक्षा सेटिंग्स और किसी भी प्रकार की सीमाओं के विरुद्ध प्रतिरक्षा है? सलामी बल्लेबाज और खुली खिड़की दोनों एक ही डोमेन पर होंगे।विंडो.ऑनर विश्वसनीय है?

क्या कोई समस्याएं, खराब परिस्थितियों में कुछ परिस्थितियों में इसका उपयोग कर रहा है?

मैं पूछ रहा हूं क्योंकि मैं ऐसे उपकरण का निर्माण करने की योजना बना रहा हूं जो उस पर भारी निर्भर करता है और जितना संभव हो सके उतने प्लेटफॉर्म का समर्थन करना चाहिए।

उत्तर

5

मैं अब दो साइटों पर एक डेवलपर रहा हूं जो विंडो.ऑनर का व्यापक उपयोग करते हैं, और जब मुझे यह विफल हुआ तो मुझे किसी भी समय पता नहीं है। इन ऐप्स का परीक्षण आईई [678], फ़ायरफ़ॉक्स और वेबकिट पर किया गया था; मैंने अनौपचारिक रूप से ओपेरा का उपयोग किया है और वहां कोई समस्या नहीं देखी है।

अब, "सलामी बल्लेबाज" रिश्ते किसी भी तरह से नाजुक रूप से नाजुक है, क्योंकि आपके उपयोगकर्ताओं को आपकी अलग-अलग पॉपअप विंडो खोलने के लिए उपयोग की जाने वाली मुख्य ब्राउज़र विंडो में "cnn.com" पर जाने से रोकने के लिए आप इतना कुछ नहीं कर सकते हैं। एक बार जब मूल विंडो ने नई सामग्री लोड की है, तो "बच्चा" विंडो का "window.opener" संदर्भ आपको वैसे भी अच्छा नहीं करेगा। इसी प्रकार, जब उपयोगकर्ता जाता है और एक नई मुख्य ब्राउज़र विंडो खोलता है और आपकी साइट पर नेविगेट करता है, तो आपकी "अनाथ" विंडो वास्तव में इसे नहीं ढूंढ पाएगी।

बेशक मैं आपको 100% गारंटी नहीं दे सकता कि सब कुछ ठीक रहेगा :-) मेरी कहानी सच है हालांकि। शायद "window.opener" पर मेरा निर्भरता उतना गंभीर या गहरा नहीं रहा है जितना आप योजना बना रहे हैं; मैं वास्तव में यह नहीं कह सकता कि मेरे अनुप्रयोगों में सबकुछ उस काम पर निर्भर था।

+0

चीयर्स @ पॉइंटी, जो संपत्ति के साथ मेरे अनुभव से मेल खाता है। कनेक्शन निश्चित रूप से एक नाजुक है, लेकिन इससे मेरे मामले में कोई फर्क नहीं पड़ता - मैं एक WYSIWYG संपादक के लिए "मीडिया प्रबंधक" बनाने की योजना बना रहा हूं जो पूर्ण स्क्रीन स्थान लेता है। इन-विंडो पॉप अप के लिए –

1

मैंने अपने आवेदन में window.opener का उपयोग किया है और पाया है कि इसके साथ काम करना अच्छा है। इसकी एकमात्र सीमा यह है कि अगर पॉप अप अवरोधक उपयोगकर्ता द्वारा सक्रिय किया जाता है तो कुछ विंडो मुद्दों को खोले जाने के कारण खोला नहीं जाता है।

इस के लिए अच्छा प्रतिस्थापन (यदि पॉप अप अवरोधक मुद्दा है) yui panel का उपयोग करना भी JQuery UI एक अच्छा विकल्प है।

इसके अलावा मैं इस तरह के किसी भी मुद्दे पर नहीं आया है और यह ब्राउज़र में अच्छी तरह से काम करता है।

+1

+1। एक वेबसाइट अपनी सीमाओं के भीतर रहनी चाहिए (जिस विंडो में उपयोगकर्ता इसे लोड करने के लिए कहा जाता है) बस मेरी निजी राय, हालांकि। – Jeremy

+0

@ एनील @ जेर मैं आम तौर पर आपके साथ सहमत हूं और इन-विंडो पॉपअप का उपयोग करता हूं, लेकिन यह एक विशेष मामला है जहां बाहरी विंडो (या टैब) बिल्कुल जरूरी है। –

+0

@Pekka 웃 मुझे पता है कि यह तीन साल हो गया है, लेकिन रिकॉर्ड के लिए, ध्यान रखें कि कुछ लोग (स्वयं शामिल) एक्सटेंशन या ब्राउज़र गुणों जैसे 'browser.link.open_newwindow = 1' का उपयोग करते हैं जो वेबसाइट के लिए पूरी तरह असंभव बनाते हैं एक नई विंडो खोलें। (उन्हें एक नया खोलने के बजाए वर्तमान टैब पर नेविगेट करने के लिए मजबूर कर रहा है) – ssokolow

5

यह ध्यान देने योग्य है कि खिड़की.ऑनर काम नहीं करता है अगर फ़ाइल क्रोम में HTTP कनेक्शन के माध्यम से लोड नहीं होती है (हालांकि यह सफारी में ठीक काम करती है)।

+0

+1 बहुत रोचक! क्या आप इसके लिए संदर्भ लिंक जानते हैं? –

+1

नहीं, यह उन चीजों में से एक है जिसे मैंने इसके साथ काम करके पाया। मैं वहां की तरह चीजों के लिए संसाधन चाहता हूं, लेकिन ब्राउजर से ब्राउज़र में ये विषमता काफी हद तक अनियंत्रित प्रतीत होती है। – Heilemann

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