2010-10-18 4 views
10

मैं jQuery UI लाइब्रेरी से एक रैपर तत्व पर स्केल प्रभाव का उपयोग करने का प्रयास कर रहा हूं जिसमें फ़्लैश ऑब्जेक्ट है।क्या मैं फ्लैश ऑब्जेक्ट को डीओएम के भीतर फिर से लोड किए बिना ले जा सकता हूं?

मुझे जिस समस्या का सामना करना पड़ रहा है वह यह है कि मेरे रैपर की सामग्री स्वचालित रूप से दूसरे रैपर (.ui-effects-wrapper) में स्थानांतरित हो जाती है, और जब ऐसा होता है तो फ्लैश ऑब्जेक्ट रीलोड होता है।

बेशक

, विशिष्ट समस्या यहाँ jQuery यूआई द्वारा नियोजित रणनीति के साथ क्या करना है - लेकिन आम तौर पर, यह पुन: लोड के बिना डोम के भीतर एक फ्लैश वस्तु को स्थानांतरित करने के लिए संभव है?

उत्तर

13

मुझे केवल यह पता है कि यह गेको (फ़ायरफ़ॉक्स के प्रतिपादन इंजन) में कैसे काम करता है। उस इंजन में, नहीं, आप संबंधित फ्लैश ऑब्जेक्ट को पुनः लोड किए बिना DOM पेड़ के भीतर <object> या <embed> स्थानांतरित नहीं कर सकते हैं। यह वास्तव में उससे भी बदतर है: आप फ्लैश ऑब्जेक्ट को नष्ट करने के लिए सीएसएस बॉक्स का कारण बनने वाले कुछ भी नहीं कर सकते हैं। गेको सीएसएस बक्से को क्षणिक के रूप में मानता है; लगभग किसी भी डोम सबट्री कि <object> शामिल जुड़े सीएसएस बॉक्स को नष्ट कर देगा, और इसलिए शामिल संशोधन सीएसएस स्पष्ट से लेकर जोड़तोड़ के किसी भी संख्या (सेट display:none) अस्पष्ट करने के लिए (opacity या overflow बदल) होगा। लेकिन प्लगइन की स्थिति डीओएम पेड़ की बजाय बॉक्स पेड़ से जुड़ी हुई है, इसलिए यदि बॉक्स नष्ट हो जाता है और फिर से बनाया जाता है, तो प्लगइन पुनः लोड हो जाता है।

यह एक बग — bug 90268, नौ साल इस लेखन के रूप में पुराने हो पर सहमति व्यक्त की है। वास्तव में, comment 80 वास्तव में लंबे समय से स्पष्टीकरण के लिए देखें कि क्यों और क्यों, यह कहने में दुख की बात है कि अगर मैं तय किए बिना नौ साल तक चला गया तो मुझे आश्चर्य नहीं होगा।

संभवतः आप युक्त पेज में जावास्क्रिप्ट करने के लिए अपने प्लगइन राज्य के सभी निर्यात इस पर काम कर सकता है।

अद्यतन: केवल दो साल बाद, बग तय कर दिया गया है! फिक्स फ़ायरफ़ॉक्स 13 में होगा, वर्तमान में 5 जून, 2012 को रिलीज के लिए निर्धारित किया गया है; यदि आप इसे जल्द से जल्द चाहते हैं, तो यह 24 अप्रैल को "बीटा" और 13 मार्च के बाद शीघ्र ही "उरोरा" होगा (जो आज है)। Josh Aas जमीन पर — पर कुश्ती के लिए बहुत अधिक श्रेय का हकदार है, यह तय 54 संशोधनों के माध्यम से चला गया और कोड की 3,000 से अधिक पंक्तियों को संशोधित करता है।

+0

एक बहुत ही सूचित प्रतिक्रिया, अपने समय के लिए धन्यवाद ... मैं विशेष रूप से बग 90,268 पढ़ने का आनंद लिया! जबकि मैं फ्लैश ऑब्जेक्ट को स्थानांतरित करने के करीब नहीं हूं, मैं कहूंगा कि इस तरह की सीमाएं जानना उतना ही महत्वपूर्ण है जितना मैं जानता हूं कि मैं क्या कर सकता हूं। – JKS

+1

आपका स्वागत है। यह मेरे लिए होता है कि, आपका बड़ा लक्ष्य क्या है, इस पर निर्भर करता है कि आप एक 'स्थिति: पूर्ण' कंटेनर से दूर हो सकते हैं जिसका 'शीर्ष'/​​'बाएं 'गुण जो आप जेएस से छेड़छाड़ करते हैं? – zwol

+0

तो, क्या यह गीको विशिष्ट समस्या है?यह अन्य ब्राउज़रों के साथ नहीं होता है, है ना? – jayarjo

2

मुझे नहीं पता कि आप इस समस्या से पीड़ित ब्राउज़र में यह काम कर सकते हैं - जो कुछ परीक्षणों से क्रोम (लिनक्स), फ़ायरफ़ॉक्स (विन/लिनक्स) के नवीनतम संस्करणों को लिखने के समय शामिल है, सफारी (विन), और ओपेरा (विन/लिनक्स)) - लेकिन इंटरनेट एक्सप्लोरर (या कम से कम आईई 6 और आईई 8 में, विंडोज एक्सपी पर) फ्लैश एप्लेट को पुनः लोड नहीं किया गया है। हालांकि आईई में एसडब्ल्यूएफओजेक्ट के साथ कुछ अजीबता है जिसे 'एम्बेड' कॉलबैक को दो बार दस्तावेज़ पेड़ में फिर से डालने पर बुलाया जाता है। तो मैंने पहले ऐसा कुछ करने का प्रयास करने का फैसला नहीं किया है और मेरे फ्लैश स्टेटस को जावास्क्रिप्ट में स्टोर किया है जैसा कि पहले जवाब में सुझाया गया था।

फिर भी, खेद कोई वास्तविक जवाब प्रदान नहीं करने के लिए है, लेकिन जब एक ही समस्या के लिए googling के बाद से यह पहली गूगल परिणाम था मुझे लगा कि यह सूची जो ब्राउज़र मुझे लगता है कि के बारे में पता यह समस्या है उपयोगी हो सकता है (मैं जवाब था jayarjo की टिप्पणी करने के लिए, लेकिन मुझे लगता है कि अभी तक के लिए पर्याप्त प्रतिष्ठा नहीं है: /)