अनकैप्ड टाइपर्रर: अपरिभाषित - jQuery के टूल की संपत्ति 'एमएसई' नहीं पढ़ सकते हैं


190

मुझे Chrome देव कंसोल में निम्न त्रुटि मिल रही है:

Uncaught TypeError: Cannot read property 'msie' of undefined

मेरी समझ यह है कि यह इसलिए है क्योंकि .browserअब jQuery में पदावनत कर दिया गया है, लेकिन मैं jQuery उपकरण के नवीनतम संस्करण का उपयोग कर रहा हूं और यह अभी भी त्रुटि दे रहा है, मैंने jsफ़ाइल में जांच की और यह वहीं है।

मैं इसे कैसे प्राप्त कर सकता हूं ताकि यह त्रुटि न दे?


1
यह त्रुटि अपर्याप्त है। आप किस तत्व से इसे पढ़ने की कोशिश कर रहे हैं?
सिद्धार्थ गुप्ता

मैंने .browserअपने कोड में बिल्कुल भी उपयोग नहीं किया है। यह jQuery उपकरण फ़ाइल में इसका पता लगाने लगता है।
कॉलिन Feb४ Col

6
browserवस्तु केवल नहीं है पदावनत 1.9 में, यह है चला गया । यदि jQuery उपकरण अभी भी इसका उपयोग कर रहा है, तो jQuery उपकरण टूट गया है।
नुकीले

1
@Alexander जो त्रुटि से छुटकारा पाने के लिए लग रहा था। आप चाहें तो जवाब डाल सकते हैं।
कॉलिन Feb४ Col

3
नवीनतम jQuery उपकरण केवल jQuery 1.7 के साथ परीक्षण किया गया है। jQuery 1.9 jQuery उपकरण के नवीनतम संस्करण के साथ संगत नहीं है; यह इत्ना आसान है। डंप jQuery उपकरण या 1.9 के नीचे किसी भी संस्करण के लिए jQuery को डाउनग्रेड करता है जो काम करता है। अन्यथा, किसी को भी jQuery उपकरण अपडेट करने की उम्मीद न करें, यह पिछले कुछ वर्षों से डेवलपर के बिना है।
स्पार्कली

जवाबों:


189

$.browserविधि jQuery 1.9 के रूप में हटा दिया गया है।

jQuery.browser() removed

jQuery.browser()विधि jQuery 1.3 के बाद से बहिष्कृत कर दिया गया और 1.9 में निकाल दिया जाता है। यदि आवश्यक हो, तो यह jQuery माइग्रेट प्लगइन के भाग के रूप में उपलब्ध है।हम आधुनिक लाइब्रेरी जैसे लाइब्रेरी के साथ फीचर डिटेक्शन का उपयोग करने की सलाह देते हैं।

- jQuery कोर 1.9 अपग्रेड गाइड

जैसा कि अपग्रेड गाइड में कहा गया है कि आप इस कार्यक्षमता को बहाल करने के लिए jQuery के माइग्रेट प्लगइन का उपयोग करने की कोशिश कर सकते हैं और jQuery के टूल को काम करने दे सकते हैं।


242

आप AJ द्वारा इस समाधान की जाँच कर सकते हैं। यह बहुत सीधा है, बस कोड की निम्नलिखित पंक्तियों को कॉपी और पेस्ट करें।

jQuery.browser = {};
(function () {
    jQuery.browser.msie = false;
    jQuery.browser.version = 0;
    if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) {
        jQuery.browser.msie = true;
        jQuery.browser.version = RegExp.$1;
    }
})();

संदर्भ :


4
यह सही काम करता है! लेकिन मुझे लगता है कि यह एक समाधान के बजाय एक पैच के रूप में इस्तेमाल किया जाना चाहिए?
जोबोकाई

धन्यवाद, एक jquery प्लगइन का उपयोग करना जो इस का उपयोग कर रहा था और यह एक वास्तविक अल्पकालिक समाधान था जब तक कि एक वास्तविक फिक्स रोल आउट न हो।
जो मेयर

धन्यवाद। यह नियत क्वेरी उपकरण v1.2.7 है, क्योंकि हमने JQuery को नवीनतम में अपग्रेड किया है।
bsentosa

1
वाह, अगर मैं आपको 10 प्लस दे सकता हूं, तो मैं अभी करूंगा।
इमान हज्जाज़ी

9
यह उत्तर अब सही नहीं है, क्योंकि IE11 में userAgentस्ट्रिंग में MSIE टोकन नहीं है ।
डेव मेथ्विन

47

अपनी jsp / js फ़ाइल में निम्न स्क्रिप्ट टैग का उपयोग करें:

<script src="http://code.jquery.com/jquery-1.9.0.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>

यह सुनिश्चित करने के लिए काम करेगा।


सुनिश्चित करें कि आपके पास काम करने वाला इंटरनेट कनेक्शन है। यदि आप ऑफ़लाइन उपयोग कर रहे हैं तो अपने अंत में js फ़ाइल डाउनलोड करें, और फिर उस फ़ाइल को देखें।
मनीषा श्रीवास्तव

वैसे मैं देख सकता हूँ कि इसे ऑनलाइन होस्ट किया गया है ... वैसे भी धन्यवाद मैंने इसे jquery.noConflict () के साथ हल किया क्योंकि मेरे पास एक ही पृष्ठ पर उपयोग होने वाले jquery के दो संस्करण थे।
प्ररित मोहन

@ User5590: कभी भी :)
मनीषा श्रीवास्तव

उत्पादन में गैर minified jquery का उपयोग नहीं करना चाहिए: उदाहरण के लिए cdnjs.com की जाँच करें । और इसके बजाय HTTPS का उपयोग करें।
ताकमान

27

मैं js फ़ाइल को शामिल करने के बाद नीचे दिए गए कोड का उपयोग करता हूं और यह अब काम कर रहा है।

<script src="js/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
    jQuery.browser = {};
    (function () {
        jQuery.browser.msie = false;
        jQuery.browser.version = 0;
        if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) {
            jQuery.browser.msie = true;
            jQuery.browser.version = RegExp.$1;
        }
    })();
</script>

यह लिंक लिंक मुझे त्रुटि देता है, लेकिन आपके द्वारा लिखे गए इस छोटे से कोड ने मुझे बहुत धन्यवाद दिया, धन्यवाद आदमी।
समन

7

यहाँ GitHub पर jQuery टूल्स बग है । आप पैच में से एक का प्रयास कर सकते हैं।

संपादित करें - यह मुझे नहीं दिखता है जैसे कि jQuery उपकरण को बहुत समर्थन मिल रहा है। मैं व्यक्तिगत रूप से उस पुस्तकालय पर निर्भरता के साथ एक नई परियोजना शुरू नहीं करूंगा, जब तक कि मैं स्वयं समर्थन लेने के लिए तैयार नहीं हो जाता।


1
+1, jQuery उपकरण पिछले कुछ वर्षों से पूरी तरह गड़बड़ है। यह "बहुत समर्थन नहीं मिल रहा है" बहुत सटीक है और एक बड़ी समझ है। मुझे लगता है कि jQuery 1.3 के बाद से केवल एक मामूली अपडेट हुआ है और पिछले कुछ वर्षों के लिए कोई भी डेवलपर नहीं है।
स्पार्कली

सहमत, किसी को एक प्रतिस्थापन पुस्तकालय के लिए एक सिफारिश है? एक scroller, ओवरले और रेंज इनपुट स्लाइडर के साथ कुछ? मैं jQuery मोबाइल से बचता हूं क्योंकि यह पहले से स्टाइल में आता है। मैंने पहले इसे स्टाइल किया है और यह एक बुरा सपना है।
अकार्बनिक

5
मैं अपने हर फंक्शन के लिए सिर्फ अच्छी तरह से लिखी गई न्यूनतम लाइब्रेरियों को ढूंढना चाहता हूं। यानी: रेंज इनपुट स्लाइडर: loopj.com/jquery-simple-slider , scroller / स्लाइडर: bxslider.com । मुझे बहुत बेहतर समर्थन मिला है और कुल मिलाकर छोटे पदचिह्न इन जैसे व्यक्तिगत पुस्तकालयों को
ढूंढ रहे हैं

4

मैंने बस जोड़ा है

jQuery.browser = {
    msie: false,
    version: 0
};

jquery स्क्रिप्ट के बाद, क्योंकि मुझे IE के बारे में कोई परवाह नहीं है।


3

अपने JS को बदलें

<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

स्रोत लिंक


जकुरी 1.7+ के लिए फिलहाल नवीनतम जेकरी-यूई है:<link rel="stylesheet" href="https://stackoverflow.com//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css"> <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
वॉचमेकर

0

मैं सभी को एक वर्ष एमएस आईई संस्करणों का समर्थन करने के लिए योजना नहीं है के रूप में, मैं बस के सभी संदर्भ बदल दिया है browser.msieसाथ false। एक अच्छा समाधान नहीं है, मुझे पता है, लेकिन यह मेरे लिए काम करता है।

(वास्तव में, वे दिखाई दिए !browser.msie, जिन्हें शर्तों से छोड़ा जा सकता है।)


0

उड़ा की तरह उपयोग करें

$(function (a) {

। । । । अपने फ़ंक्शन में। जैसे आप msie प्रॉपर्टी का उपयोग कर सकते हैं

if (a.browser.msie) 
{
}
else 
{
   $(settings.current).after(Uploadelement);
}

सौभाग्य


0

उड़ा की तरह उपयोग करें

मैं इस कमांड का उपयोग करता हूं और हल करता हूं

"बिना पढ़ा हुआ टाइपरर: अपरिभाषित की संपत्ति 'एमएसई' नहीं पढ़ सकता है" त्रुटि

if (/1\.(0|1|2)\.(0|1|2)/.test($.fn.jquery) || /^1.1/.test($.fn.jquery)) {
    return;
}

0

मुझे यह त्रुटि JQuery 1.10 और JQuery UI 1.8 का उपयोग करते समय मिल रही थी। मैं नवीनतम JQuery UI 1.11.4 को अपडेट करके इस त्रुटि को हल करने में सक्षम था।

विजुअल स्टूडियो से JQuery यूआई को अपडेट करने के लिए कदम:

  • प्रोजेक्ट या समाधान पर नेविगेट करें
  • राइट क्लिक करें: "NuGet पैकेज प्रबंधित करें"
  • बाईं ओर, "इंस्टॉल किए गए पैकेज" टैब पर क्लिक करें
  • "JQuery UI (संयुक्त पुस्तकालय)" देखें और अपडेट पर क्लिक करें
  • यदि मिल जाए, तो उसे चुनें और अपडेट पर क्लिक करें
  • यदि नहीं मिला है, तो इसे बाईं ओर "ऑनलाइन> nuget.org" टैब में ढूंढें और इंस्टॉल पर क्लिक करें। यदि Jquery UI संस्करण का पुराना संस्करण अभी भी मौजूद है, तो उसे प्रोजेक्ट से हटाया जा सकता है

0

यदि आपने jQuery को दो बार परिभाषित किया है, तो आपको यह त्रुटि मिल सकती है। उदाहरण के लिए, यदि आप प्राइमफेस के साथ काम कर रहे हैं (इसमें पहले से ही jQuery शामिल है) और आप इसे दूसरी जगह परिभाषित करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.