আনকড টাইপ এরিয়ার: অপরিজ্ঞাত - jQuery সরঞ্জামগুলির সম্পত্তি 'ম্যাসি' পড়তে পারে না


190

আমি ক্রোম দেব কনসোলে নিম্নলিখিত ত্রুটিটি পাচ্ছি:

Uncaught TypeError: Cannot read property 'msie' of undefined

আমার বোধগম্যতা হ'ল এটি .browserএখন jQuery এ অবচিত হ'ল তবে আমি jQuery সরঞ্জামগুলির সর্বশেষ সংস্করণটি ব্যবহার করছি এবং এটি এখনও ত্রুটিটি দিচ্ছে, আমি jsফাইলটিতে যাচাই করেছিলাম এবং এটি সেখানে রয়েছে।

আমি কীভাবে এটির কাছাকাছি যেতে পারি যাতে এটি ত্রুটি দেয় না?


1
এই ত্রুটি অপর্যাপ্ত। আপনি কোন উপাদান থেকে এটি পড়ার চেষ্টা করছেন?
সিদ্ধার্থ গুপ্ত

আমি .browserআমার কোডটি মোটেই ব্যবহার করি নি । দেখে মনে হচ্ছে এটি jQuery সরঞ্জাম ফাইলে এটি সনাক্ত করছে।
কলিন 7 Feb7

6
browserবস্তু শুধুমাত্র নয় অবচিত 1.9, এটা হচ্ছে সর্বস্বান্ত । যদি jQuery সরঞ্জামগুলি এখনও ব্যবহার করে তবে jQuery সরঞ্জামগুলি নষ্ট হয়ে গেছে।
পয়েন্টি

1
@ আলেকজান্ডার যা ত্রুটি থেকে মুক্তি পেয়েছে বলে মনে হয়েছে। আপনি চাইলে একটি উত্তর দিতে পারেন।
কলিন 747

3
সর্বশেষতম jQuery সরঞ্জামগুলি কেবল jQuery 1.7 দিয়ে পরীক্ষা করা হয়েছে। jQuery 1.9 jQuery সরঞ্জামগুলির সর্বশেষতম সংস্করণের সাথে সামঞ্জস্যপূর্ণ নয়; এটা যে সহজ। JQuery সরঞ্জামগুলি ফেলে দিন বা 1.9 এর নীচের যে কোনও সংস্করণে jQuery ডাউনগ্রেড করে that অন্যথায়, কেউ jQuery সরঞ্জাম আপডেট করার আশা করবেন না, এটি গত কয়েক বছর ধরে কোনও বিকাশকারী ছাড়া রয়েছে without
স্পার্কি

উত্তর:


189

$.browserপদ্ধতি jQuery এর 1.9 এর হিসাবে সরিয়ে ফেলা হয়েছে।

jQuery.browser() removed

jQuery.browser()পদ্ধতি jQuery এর 1.3 থেকে অবচিত হয়েছে এবং 1.9 মধ্যে মুছে ফেলা হবে। প্রয়োজনে এটি jQuery মাইগ্রেট প্লাগইনের অংশ হিসাবে উপলব্ধ। আমরা মডার্নিজারের মতো লাইব্রেরির সাথে বৈশিষ্ট্য সনাক্তকরণ ব্যবহার করার পরামর্শ দিই।

- jQuery এর কোর 1.9 আপগ্রেড গাইড

আপগ্রেড গাইডে বর্ণিত হিসাবে আপনি এই কার্যকারিতাটি পুনরুদ্ধার করতে jQuery মাইগ্রেট প্লাগইনটি ব্যবহার করতে এবং jQuery সরঞ্জামগুলিকে কাজ করতে দিতে পারেন।


242

আপনি এজে দ্বারা এই সমাধানটি চেক করতে পারেন। এটি বেশ সোজা, কেবল নিম্নলিখিত কোডের লাইনগুলি অনুলিপি করুন এবং আটকান।

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
এটি পারফেক্ট কাজ করে! তবে আমি এটি গ্রহণ করি এটি সমাধানের চেয়ে বরং প্যাচ হিসাবে ব্যবহার করা উচিত?
Jobokai

ধন্যবাদ, একটি জ্যাকুরি প্লাগইন ব্যবহার করে যা এটি ব্যবহার করছিল এবং এটি একটি সহজ স্বল্পমেয়াদী সমাধান ছিল যতক্ষণ না আসল ফিক্স রোলআউট হয়।
জো মায়ার

ধন্যবাদ। আমরা জিকুয়েরিকে সর্বশেষে আপগ্রেড করেছি বলে এই স্থির প্রশ্নের সরঞ্জামগুলি v1.2.7
বিসেন্টোসা

1
বাহ, আমি যদি আপনাকে 10 টি অনুমান দিতে পারি, আমি এখনই এটি করব।
মান হেজাজি

9
এই উত্তরটি আর সঠিক নয়, যেহেতু আইই 11 এর userAgentস্ট্রিংটিতে এমএসআইই টোকেন নেই ।
ডেভ মেথভিন

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>

এটি নিশ্চিতভাবে কাজ করবে।


আপনার কাজ ইন্টারনেট সংযোগ আছে তা নিশ্চিত করুন। আপনি যদি অফলাইন ব্যবহার করছেন তবে আপনার শেষে জেএস ফাইলটি ডাউনলোড করুন এবং তারপরে সেই ফাইলটি উল্লেখ করুন।
মনীষা শ্রীবাস্তব

ভাল আমি দেখতে পাচ্ছি যে এটি অনলাইনে হোস্ট করা হয়েছে ... যাইহোক ধন্যবাদ আমি jquery.noConflict () দিয়ে সমাধান করেছি কারণ একই পাতায় jquery ব্যবহার করার জন্য আমার দুটি সংস্করণ ছিল।
প্রীতি মোহন

@ ব্যবহারকারী 5590: যে কোনও সময় :)
মনীষা শ্রীবাস্তব

উত্পাদনে নন মিনিফাইড jquery ব্যবহার করা উচিত নয়: উদাহরণস্বরূপ cdnjs.com দেখুন । এবং পরিবর্তে এইচটিটিপিএস ব্যবহার করুন।
টাকমান

27

জেএস ফাইল অন্তর্ভুক্ত করার পরে আমি নীচের কোডটি ব্যবহার করি এবং এটি এখন কাজ করছে।

<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

এখানে গিটহাবের jQuery সরঞ্জাম বাগ রয়েছে । আপনি একটি প্যাচ চেষ্টা করতে পারেন।

সম্পাদনা করুন - এটি আমার কাছে দেখে মনে হচ্ছে না যে jQuery সরঞ্জামগুলি প্রচুর সমর্থন পাচ্ছে। আমি ব্যক্তিগতভাবে এই লাইব্রেরির উপর নির্ভরশীলতা নিয়ে একটি নতুন প্রকল্প শুরু করব না যতক্ষণ না আমি নিজের সমর্থন গ্রহণের জন্য প্রস্তুত না হই।


1
+1, jQuery সরঞ্জামগুলি গত কয়েক বছর ধরে একটি সম্পূর্ণ জগাখিচুড়ি। এটি "বেশি সমর্থন পাচ্ছে না" এটি খুব নির্ভুল এবং একটি বিশাল আন্ডারস্টেটমেন্ট। আমি মনে করি jQuery 1.3 থেকে কেবলমাত্র একটি ছোটখাট আপডেট হয়েছে এবং গত কয়েক বছর ধরে কোনও বিকাশকারীও নেই।
স্পার্কি

সম্মত, প্রতিস্থাপন গ্রন্থাগারের জন্য কারও কাছে কি সুপারিশ রয়েছে? কোনও স্ক্রোলার, ওভারলে এবং রেঞ্জ ইনপুট স্লাইডারের সাথে কিছু? আমি jQuery মোবাইল এড়িয়ে চলেছি কারণ এটি প্রাক-স্টাইলযুক্ত। আমি এটি আগে স্টাইল করেছি এবং এটি একটি দুঃস্বপ্ন।
অজৈব

5
আমি চাই প্রতিটি ফাংশন জন্য স্রেফ ভাল লিখিত ন্যূনতম গ্রন্থাগার সন্ধান করতে সরানো হয়েছে। অর্থাত্: পরিসীমা ইনপুট স্লাইডার: loopj.com/jquery-simple- স্লাইডার , স্ক্রোলার / স্লাইডার: bxslider.com । আমি এই জাতীয় স্বতন্ত্র গ্রন্থাগারগুলি খুঁজে পেতে আরও ভাল সমর্থন এবং সামগ্রিকভাবে ছোট পদচিহ্নগুলি
পাই

4

আমি কেবল যোগ করেছি

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

jquery স্ক্রিপ্ট পরে, কারণ আমি আর IE সম্পর্কে চিন্তা করি না।


3

আপনার জেএস এর সাথে প্রতিস্থাপন করুন

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

উত্স লিঙ্ক


: JQuery জন্য মুহূর্তে 1.7+ সর্বশেষ jQuery-ui এ হল<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) {

। । । । .আপনার ফাংশনটিতে আপনি এমএসি সম্পত্তি ব্যবহার করতে পারেন

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

গুডলাক


0

ঘা মত ব্যবহার করুন

আমি এই আদেশটি ব্যবহার করি এবং সমাধান করি solve

"আনকাচড টাইপ এয়ারার: ​​অপরিজ্ঞাত সম্পত্তি 'এমসি' পড়তে পারে না" ত্রুটি

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 UI সংস্করণটির পুরানো সংস্করণটি এখনও বিদ্যমান থাকলে, এটি প্রকল্প থেকে মোছা যাবে

0

আপনি যদি jQuery দুবার সংজ্ঞায়িত করা থাকেন তবে আপনি এই ত্রুটিটি পেতে পারেন। উদাহরণস্বরূপ, যদি আপনি প্রাইমফেসগুলি নিয়ে কাজ করছেন (এটি ইতিমধ্যে jQuery অন্তর্ভুক্ত) এবং আপনি এটি অন্য জায়গায় সংজ্ঞায়িত করেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.