ExtJS 2.2.1 का उपयोग करके, मेरे पास एक कंटेनर तत्व है जो सर्वर से एचटीएमएल का एक टुकड़ा लोड करने वाला है:ExtJS: IEL में ऑटोलोड काम नहीं करता है
autoLoad: { url: 'someurl' }
यह फ़ायरफ़ॉक्स में ठीक काम करता है, लेकिन आईई 7 के लिए यह एक वाक्यविन्यास त्रुटि में परिणाम देता है लाइन 7170 पर ext-all-debug.js में:
this.decode = function(json){
return eval("(" + json + ')');
};
मैंने उस फ़ंक्शन को इस मोड़ को बदलकर इसे ठीक किया:
this.decode = function(json){
return eval('(function(){ return json; })()');
};
फिर ऑटोलोड दोनों ब्राउज़रों में अच्छी तरह से काम करता है, लेकिन फिर कुछ विषमता है बग और इसके अलावा, आप वास्तव में ExtJS लाइब्रेरी में इसे ठीक नहीं करना चाहते हैं क्योंकि यह अनजान होगा (विशेष रूप से minified ext-all.js में जो एक पंक्ति पर जावास्क्रिप्ट के आधे मेगाबी की तरह है)।
मैं इस बग के बारे में बहुत कुछ नहीं ढूंढ पाया।
विविधताएं जो मैंने कोशिश की हैं:
// With <script> tags around all the HTML
autoLoad: { url: 'someurl', scripts: true }
// With <script> tags around all the HTML
autoLoad: { url: 'someurl', scripts: false }
और <script>
टैग के बिना वीज़ा बनाम। एचटीएमएल में कोई जावास्क्रिप्ट नहीं है, लेकिन यह संभव होना चाहिए, क्योंकि अंततः हम लौटाए गए HTML के अंदर जावास्क्रिप्ट का उपयोग करेंगे।
समस्या HTML में नहीं है क्योंकि यहां तक कि सबसे आसान संभव HTML के साथ, त्रुटि वही है।
अद्यतन - donovan को प्रतिक्रिया:
सबसे सरल मामला जहां इसका उपयोग किया जाता है यह है:
changeRolesForm = new Ext.Panel({
height: 600,
items: [{ autoScroll: true, autoLoad: WMS.Routing.Route("GetRolesList", "User") + '?userID=' + id}]
});
यहां कोई डेटास्टोर शामिल नहीं है। प्रतिक्रिया-प्रकार text\html
भी है, जेसन नहीं, इसलिए यह इसे भ्रमित नहीं कर सकता है। और जैसा कि कहा गया है, यह फ़ायरफ़ॉक्स में ठीक काम कर रहा है, और फ़ायरफ़ॉक्स में, यह एक ही eval
फ़ंक्शन निष्पादित करता है, लेकिन त्रुटि के बिना। तो ऐसा नहीं है कि फ़ायरफ़ॉक्स निष्पादन के एक अलग पथ का पालन करता है, यह वही है, लेकिन eval
पर त्रुटि के बिना।
कोई भी "उत्तर" इस तथ्य को संबोधित नहीं करता है कि त्रुटि केवल आईई में होती है। हम अभी भी Ext 3.3.0 में एक ही चीज़ का अनुभव कर रहे हैं। –
हाय जूलियन, यदि आप फायरबग में देखते हैं, तो सर्वर से क्या लौटाया जाता है? एक्स सर्वर के लिए कॉल करता है जिसके बाद यह आईई में मर जाता है, यह उपयोगी होगा अगर अनुरोध और प्रतिक्रिया पोस्ट की जाती है (हेडर समेत) –
मैं रॉब प्रॉक्सी का उपयोग करने के लिए रॉब प्रॉक्सी का उपयोग करने की सलाह देता हूं, क्योंकि आईई डीबग टूल्स भयानक हैं –