ব্যবহারকারী IE ব্যবহার করছে কিনা তা পরীক্ষা করুন


390

আমি একটি নির্দিষ্ট ক্লাসের সাথে ডিভ উপর ক্লিক করে নীচের মত একটি ফাংশন কল করছি।

কোনও ব্যবহারকারী যদি ইন্টারনেট এক্সপ্লোরার ব্যবহার করছেন এবং ফাংশনটি শুরু করার সময় এটি পরীক্ষা করতে পারেন এবং যদি তারা অন্য ব্রাউজারগুলি ব্যবহার করে তবে এটি কেবল আই ব্যবহারকারীদের জন্যই চালিত হয় যদি তা বাতিল / বাতিল করে দেয়? এখানকার ব্যবহারকারীরা সবাই আইই 8 বা উচ্চতর সংস্করণে থাকবেন যাতে আই আই 7 এবং নিম্ন সংস্করণগুলি কভার করার দরকার হয় না।

যদি আমি বলতে পারি যে তারা কোন ব্রাউজারটি ব্যবহার করছে তা দুর্দান্ত হবে তবে এটির প্রয়োজন নেই।

ফাংশন উদাহরণ:

$('.myClass').on('click', function(event)
{
    // my function
});

1
আইই বা অন্যান্য ব্রাউজারগুলি সনাক্ত করতে আধুনিকীকরণ ব্যবহার করুন। stackoverflow.com/questions/13478303/…
ক্রিস

7
আধুনিক ওয়েব বিকাশের মান অনুসারে, IE এর পুরানো সংস্করণগুলি শুরু করার জন্য এটি খারাপ অভ্যাস।
রোসেইন

7
প্রকৃতপক্ষে, এই "খারাপ অভ্যাস" মানদণ্ড দ্বারা তাদের বাধ্য করা হয়, সুতরাং এটি বিকাশকারীর দোষ নয় ... ব্রাউজারগুলি ভিন্নভাবে কাজ করে এবং প্রয়োগগুলি সম্পর্কিত স্পেসগুলিতে খুব নরম are অর্ডার এমন কিছু বিষয় যা বগী এবং বিরক্তিকর নয় জাহান্নাম এক করিতে হয় হয়েছে ব্রাউজার সনাক্তকরণ না। আমি একজন অন্য সেরা অনুশীলনের সুপারিশ করবে: With modern web development, it's bad practice to support non-Chromium-based browsers (with Safari not considered to be Chromium-based at all)। দুঃখিত, তবে এই উন্মাদনাটি অবশ্যই এক পর্যায়ে শেষ হতে হবে ...
ব্যবহারকারী 2173353

2
"ব্রাউজার সনাক্তকরণ" এর উপরে "বৈশিষ্ট্য সনাক্তকরণ" করা আজকের চেয়ে ভাল অনুশীলন। পরিবর্তে ব্রাউজারটি আপনার যা প্রয়োজন তা করে কিনা তা জিজ্ঞাসা করুন।
ক্রিস রজার্স

2
@ ক্রিস - ক্ষমাপ্রার্থনা ... এর জন্য আরও জোকি টোন তৈরি করা উচিত। আমি আমার আনন্দ চুরি করে এবং আমাকে তিক্ততা এবং হতাশার জন্য ছেড়ে যাওয়ার জন্য আমি IE কে দোষ দিতে চলেছি। :)
জেডিবি এখনও মনিকার 24

উত্তর:


477

জাভাস্ক্রিপ্ট পদ্ধতির নীচে ব্যবহার করুন:

function msieversion() 
{
    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

    if (msie > 0) // If Internet Explorer, return version number
    {
        alert(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))));
    }
    else  // If another browser, return 0
    {
        alert('otherbrowser');
    }

    return false;
}

মাইক্রোসফ্ট সমর্থন সাইটের নীচে আপনি বিশদটি পেতে পারেন:

স্ক্রিপ্ট থেকে ব্রাউজার সংস্করণ কীভাবে নির্ধারণ করবেন

আপডেট: (IE 11 সমর্থন)

function msieversion() {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

    if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))  // If Internet Explorer, return version number
    {
        alert(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))));
    }
    else  // If another browser, return 0
    {
        alert('otherbrowser');
    }

    return false;
}

27
যদিও এটি ইউ এ ভেরিয়েবলটি এমএসআইই দিয়ে কখনই শুরু হবে না, লেখাটি if (msie > 0)বিভ্রান্তিকর ading মানটি পাওয়া না গেলে সূচিপত্র () ফাংশনটি -1 না 0 প্রদান করে। সুতরাং if (msie > -1)আরও ব্যাখ্যাযোগ্য হবে।
নেভিল নাজিরেন

61
এটি আমার জন্য আইএন ১১-এ এনএএন প্রদান করে।
সত্যবাদ

7
@verism এবং অন্যদের: এই উত্তর যে জন্য কাজ করে পরীক্ষা IE 11: stackoverflow.com/a/21712356/114029
Leniel Maccaferri

8
navigator.userAgent.indexOf ("MSIE")> 0 || navigator.userAgent.indexOf ("ত্রিশূল")> 0 || navigator.userAgent.indexOf ("এজ")> 0
টাইলারমাউথ

12
/Edge\/|Trident\/|MSIE /.test(window.navigator.userAgent)আমি জানি যে এটি 10 ​​এবং 11 এ কাজ করে আপনি যদি <আই 9 এবং এজ যাচাই করতে পারেন তবে উত্তর সম্পাদনা করুন।
ইন্ডোলারিং

595

এটি বেশ কয়েক বছর পরে, এবং এজ ব্রাউজারটি এখন ক্রোমিয়ামকে এর রেন্ডারিং ইঞ্জিন হিসাবে ব্যবহার করে।
আইই 11 এর জন্য অনুসন্ধান করা এখনও দুঃখের বিষয়।

আইই এর প্রাচীন সংস্করণগুলি চলে যাওয়া উচিত, এটি এখানে আরও সহজ পদ্ধতি।

if (window.document.documentMode) {
  // Do IE stuff
}

এখানে আমার পুরানো উত্তর (2014):

এজ এ ব্যবহারকারী এজেন্ট স্ট্রিং পরিবর্তন হয়েছে।

/**
 * detect IEEdge
 * returns version of IE/Edge or false, if browser is not a Microsoft browser
 */
function detectIEEdge() {
    var ua = window.navigator.userAgent;

    var msie = ua.indexOf('MSIE ');
    if (msie > 0) {
        // IE 10 or older => return version number
        return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
    }

    var trident = ua.indexOf('Trident/');
    if (trident > 0) {
        // IE 11 => return version number
        var rv = ua.indexOf('rv:');
        return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
    }

    var edge = ua.indexOf('Edge/');
    if (edge > 0) {
       // Edge => return version number
       return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
    }

    // other browser
    return false;
}

নমুনা ব্যবহার:

alert('IEEdge ' + detectIEEdge());

আইই 10 এর ডিফল্ট স্ট্রিং:

Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)

আইই 11 এর ডিফল্ট স্ট্রিং:

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko 

এজ 12 এর ডিফল্ট স্ট্রিং:

Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0 

এজ 13 এর ডিফল্ট স্ট্রিং (thx @DrCord):

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 

এজ 14 এর ডিফল্ট স্ট্রিং:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/14.14300 

এজ 15 এর ডিফল্ট স্ট্রিং:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063 

প্রান্ত 16 এর ডিফল্ট স্ট্রিং:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299 

এজ এর ডিফল্ট স্ট্রিং 17:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134 

18 এর ডিফল্ট স্ট্রিং (অভ্যন্তর পূর্বরূপ):

Mozilla/5.0 (Windows NT 10.0; Win64; x64; ServiceUI 14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17730 

কোডপেনে পরীক্ষা:

http://codepen.io/gapcode/pen/vEJNZN


4
মন্তব্য করার জন্য আপনাকে ধন্যবাদ। আমি আপনার উত্তরটি এখনও যাচাই করে দেখিনি, তবে আমি একটি বিষয়ে মন্তব্য করতে চাই: প্রথম 'যদি' এর মধ্যে 'রিটার্ন' থাকে, আপনার পরে আর কোনও 'দরকার নেই'।
মারিও

30
শুধু কৌতূহলী, কেন হেক তারা আইই এর নতুন সংস্করণে ব্যবহারকারী এজেন্ট লাইন পরিবর্তন করে? এমএস গুরুত্ব সহকারে আমাদের তাদের ভয়ঙ্কর ওয়েব ব্রাউজারটি সনাক্ত করতে চায় না।
c00000fd

3
@ সমীর আলিভাই যা তাত্ত্বিক হিসাবে ভাল মনে হয় তবে বাস্তবে এটি বিশেষত ব্যবহারিক নয়। কখনও কখনও সমস্যাগুলি দেখা দেয় যে একটি একক "বৈশিষ্ট্য" সনাক্তকরণটি অন্তর্ভুক্ত করে না এবং প্লাস নির্দিষ্ট বৈশিষ্ট্যগুলিতে বাস্তবায়নের সান্নিধ্য থাকে যা কেবল ব্রাউজারের জ্ঞান নিয়ে কাজ করা যেতে পারে। আমি ব্রাউজারের পরিসংখ্যান সংগ্রহ করার মতো সাধারণ কিছু করতে চাইলে কী হয়?
সামান্য

34
এটি লক্ষ্য করা উচিত যে এজ আসলে 'আই 12' নয় তবে বাস্তবে সম্পূর্ণ আলাদা ব্রাউজার। উইন্ডোজ 10 আইই 11 এবং এজ উভয়ই ইনস্টল করা রয়েছে।
মোলোকো

16
আই-এর প্রতি আমার বিদ্বেষ বেড়ে যায়
কলব ক্যানিয়ন

135

আপনি যদি জানতে চান যে সমস্ত ব্রাউজারটি IE হয় বা না, আপনি এটি করতে পারেন:

var isIE = false;
var ua = window.navigator.userAgent;
var old_ie = ua.indexOf('MSIE ');
var new_ie = ua.indexOf('Trident/');

if ((old_ie > -1) || (new_ie > -1)) {
    isIE = true;
}

if ( isIE ) {
    //IE specific code goes here
}

আপডেট 1: একটি ভাল পদ্ধতি

আমি এখন এটি সুপারিশ। এটি এখনও খুব পঠনযোগ্য এবং এর চেয়ে কম কোড :)

var ua = window.navigator.userAgent;
var isIE = /MSIE|Trident/.test(ua);

if ( isIE ) {
  //IE specific code goes here
}

সংক্ষিপ্ত উত্তরের জন্য মন্তব্যগুলিতে জনিফুনকে ধন্যবাদ :)

আপডেট 2: সিএসএসে আইই জন্য পরীক্ষা করা

প্রথমত, আপনি যদি পারেন তবে আপনার @supportsকোনও ব্রাউজার নির্দিষ্ট সিএসএস বৈশিষ্ট্য সমর্থন করে কিনা তা যাচাই করার জন্য জেএসের পরিবর্তে বিবৃতি ব্যবহার করা উচিত ।

.element {
  /* styles for all browsers */
}

@supports (display: grid) {
  .element {
    /* styles for browsers that support display: grid */
  }
}

(দ্রষ্টব্য যে আইই মোটেও সমর্থন করে না @supportsএবং একটি @supportsবিবৃতিতে রাখা কোনও স্টাইল উপেক্ষা করবে ))

যদি সমস্যাটি সমাধান না করা যায় @supportsতবে আপনি এটি করতে পারেন:

// JS

var ua = window.navigator.userAgent;
var isIE = /MSIE|Trident/.test(ua);

if ( isIE ) {
  document.documentElement.classList.add('ie')
}
/* CSS */

.element {
  /* styles that apply everywhere */
}

.ie .element {
  /* styles that only apply in IE */
}

(দ্রষ্টব্য: classListজেএস তুলনায় তুলনামূলকভাবে নতুন এবং আমি মনে করি, আইআই ব্রাউজারগুলির মধ্যে এটি কেবল আইই ১১ এ কাজ করে P সম্ভবত আইই ১০ও রয়েছে))

আপনি যদি আপনার প্রকল্পে এসসিএসএস (সাস) ব্যবহার করেন তবে এটিকে সহজ করা যেতে পারে:

/* SCSS (Sass) */

.element {
  /* styles that apply everywhere */

  .ie & {
    /* styles that only apply in IE */
  }
}

আপডেট 3: মাইক্রোসফ্ট এজ যোগ করা (প্রস্তাবিত নয়)

আপনি যদি মাইক্রোসফ্ট এজকে তালিকায় যুক্ত করতে চান তবে আপনি নিম্নলিখিতটি করতে পারেন। যাইহোক আমি এটিকে সুপারিশ করি না কারণ এজ হ'ল আই এর চেয়ে অনেক বেশি সক্ষম ব্রাউজার।

var ua = window.navigator.userAgent;
var isIE = /MSIE|Trident|Edge\//.test(ua);

if ( isIE ) {
  //IE & Edge specific code goes here
}

5
বা কয়েকটি বাইটে একই: এমএস_আই = a ua.indexOf ('MSIE') || ~ ua.indexOf ( 'ত্রিশূল /'); ;-)
সাইমন স্টেইনবার্গার

12
আমার সংস্করণটি মানুষের কাছে আরও তাত্ক্ষণিক বোধ তৈরি করে তবে কম বাইটগুলি সর্বদা ভাল থাকে :)
ড্যানিয়েল টনন

7
বাms_ie = !!ua.match(/MSIE|Trident/)
xori

5
বা এমএস_আই = / এমএসআইইপিটিট্রাইডেন্ট / স্টিস্টুয়া)
জনিফুন

1
@ সিমোনস্টাইনবার্গারের কি এর ~কোন তাত্পর্য আছে?
1.21 গিগাওয়াট

45

এটি trueইন্টারনেট এক্সপ্লোরারের যে কোনও সংস্করণের জন্য ফিরে আসে :

function isIE(userAgent) {
  userAgent = userAgent || navigator.userAgent;
  return userAgent.indexOf("MSIE ") > -1 || userAgent.indexOf("Trident/") > -1 || userAgent.indexOf("Edge/") > -1;
}

userAgentপরামিতি ঐচ্ছিক এবং ব্রাউজারের ইউজার এজেন্ট তা অক্ষমতা।


এটি ভাল হওয়া উচিত তবে আপনি মূলত IE ব্রাউজারগুলির জন্য একটি ডিফল্ট "রিটার্ন ট্রু" বা "রিটার্ন 1" মান সেট করতে ভুলে গেছেন। আইই ব্রাউজারগুলি সনাক্ত করা হলে এটি বর্তমানে কোনও মান ফিরিয়ে দেয় না।
ভিনসেন্ট এডওয়ার্ড গেদারিয়া বিনুয়া

10
কেন আপনি এজ হিসাবে আইই হিসাবে আচরণ করতে চান? সামঞ্জস্যের ক্ষেত্রে, তাদের আজকাল খুব কম দেখা যায়।
খনি

@ ডক্টা_ফৌস্টাস ইউজার এজেন্ট একটি প্যারামিটার, বিশ্বব্যাপী নয়
বেনডাইট্রি

29

অ্যাংুলারজস টিম এটি এটি করছে ( বনাম 1.6.5 ):

var msie, // holds major version number for IE, or NaN if UA is not IE.

// Support: IE 9-11 only
/**
 * documentMode is an IE-only property
 * http://msdn.microsoft.com/en-us/library/ie/cc196988(v=vs.85).aspx
 */
msie = window.document.documentMode;

তারপরে কোডের বিভিন্ন লাইন ছড়িয়ে ছিটিয়ে রয়েছে যেমন এটির সংখ্যা হিসাবে ব্যবহার করে

if (event === 'input' && msie <= 11) return false;

এবং

if (enabled && msie < 8) {

উইন্ডো.ডোকামেন্ট.ডোকামেন্টমোড এমএস এজ
ওয়েসেলিন ভাসেলিভ

25
এমএস এজ এ এটি অপরিজ্ঞাত কারণ এমএস এজ আইই নয়!
জেসিকেডেল

1
document.documentModeআইই 8 + দ্বারা সমর্থিত। এটি 'undefined'এজ বা ক্রোম / ফায়ারফক্সের জন্য হবে ...। আমি এই কোডটি var IEver = window.document.documentMode || (window.attachEvent? 1 : 99);এমনভাবে পরিবর্তন করেছিলাম যে এটি IE8 +, 99-নন-আইই ব্রাউজারগুলির জন্য 99 এর পুরানো IE সংস্করণ (সাধারণত এটি আধুনিক ব্রাউজার হবে) এবং পুরানো আই 5-7 এর জন্য 1 প্রদান করে। এটি এমনভাবে লেখা কারণ আমাদের সাধারণত কিছু পুরানো আইই এর জন্য বিশেষ কাজ প্রয়োজন। সুতরাং, এর if (IEver < 9) { ... }অর্থ এটি যদি কোনও পুরানো আইই হয়
এস। স্পর্শান

29

আপনি ব্যবহারকারী-নেভিগেটর সনাক্ত করতে নেভিগেটর অবজেক্টটি ব্যবহার করতে পারেন, এটির জন্য আপনার জিকিউরির দরকার নেই

<script type="text/javascript">

if (/MSIE (\d+\.\d+);/.test(navigator.userAgent) || navigator.userAgent.indexOf("Trident/") > -1 ){ 

 // Do stuff with Internet-Exploders ... :)
}

</script>

http://www.javascriptkit.com/javatutors/navigator.shtml


4
এটি আমার আই
কার্টিস

2
আইই 11 এর ব্যবহারকারী এজেন্ট এমএসআইই (এক্সএক্স) থেকে আলাদা; আইই 11 এর ট্রিডেন্টের জন্য পরীক্ষা করে পাওয়া যাবে।
অরফিয়াস

এটি ফায়ারফক্স ৪৫.০.২ এ একটি মিথ্যা ইতিবাচক দেয়।
টিম এস ভ্যান হরেন

ভুল পরীক্ষা সূচি যদি আপনার নেভিগেটর.ইউসারএজেন্ট.ইন্ডেক্সঅফ ("ট্রাইডেন্ট /") থাকে ঠিক বা মিথ্যা পরীক্ষার ক্রিয়াকলাপের মতো ফেরত না দেয়! = -1
দাহার ইউসুফ

10

উপরের উত্তর ব্যবহার করে; সহজ এবং ঘনীভূত বুলিয়ান:

var isIE = /(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent);


1
উইডনোস 10 এ ফায়ারফক্সে 44.0.2-এ মিথ্যা প্রত্যাবর্তন করে 10 ফায়ারফক্সের কোন সংস্করণ সত্য @ সিকনি 8 রিটার্ন করে?
আর্থার হেবার্ট

9

পদ্ধতি 01:
b ব্রাউজারটি jQuery সংস্করণ 1.3 এ অবহেলা করা হয়েছিল এবং 1.9-এ সরানো হয়েছে

if ( $.browser.msie) {
  alert( "Hello! This is IE." );
}

পদ্ধতি 02:
শর্তাধীন মন্তব্য ব্যবহার করে

<!--[if gte IE 8]>
<p>You're using a recent version of Internet Explorer.</p>
<![endif]-->

<!--[if lt IE 7]>
<p>Hm. You should upgrade your copy of Internet Explorer.</p>
<![endif]-->

<![if !IE]>
<p>You're not using Internet Explorer.</p>
<![endif]>

পদ্ধতি 03:

 /**
 * Returns the version of Internet Explorer or a -1
 * (indicating the use of another browser).
 */
function getInternetExplorerVersion()
{
    var rv = -1; // Return value assumes failure.

    if (navigator.appName == 'Microsoft Internet Explorer')
    {
        var ua = navigator.userAgent;
        var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
            rv = parseFloat( RegExp.$1 );
    }

    return rv;
}

function checkVersion()
{
    var msg = "You're not using Internet Explorer.";
    var ver = getInternetExplorerVersion();

    if ( ver > -1 )
    {
        if ( ver >= 8.0 ) 
            msg = "You're using a recent copy of Internet Explorer."
        else
            msg = "You should upgrade your copy of Internet Explorer.";
    }

    alert( msg );
}

পদ্ধতি 04:
জাভাস্ক্রিপ্ট / ম্যানুয়াল সনাক্তকরণ ব্যবহার করুন

/*
     Internet Explorer sniffer code to add class to body tag for IE version.
     Can be removed if your using something like Modernizr.
 */
 var ie = (function ()
 {

     var undef,
     v = 3,
         div = document.createElement('div'),
         all = div.getElementsByTagName('i');

     while (
     div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i>< ![endif]-->',
     all[0]);

     //append class to body for use with browser support
     if (v > 4)
     {
         $('body').addClass('ie' + v);
     }

 }());

রেফারেন্স লিংক


@ আমি উত্তরটি আপডেট করেছি আশা করি এটি আপনার পক্ষে কার্যকর হবে।
আমির শাহজাদ

একটি দ্রষ্টব্য হিসাবে: পদ্ধতি 2 আই 10 তে বা স্ট্যান্ডার্ড মোডে আরও ভাল কাজ করবে না। আরও তথ্যের জন্য: শর্তাধীন মন্তব্যগুলি আর সমর্থিত নয়
সন্নিবেশকারী নামটি এখানে

@ অন্তর্ভুক্ত ব্যবহারকারীর নাম আপনি এখানে খুব সঠিক, এর জন্য আমি মনে করি .ie10আপনি যদি কেবলমাত্র ১০ এর জন্য কিছু সিএসএস ফিক্স করছেন তবে ক্লাসের ব্যবহার সেরা বিকল্পগুলির মধ্যে একটি। ইন্টারনেট এক্সপ্লোরার 10 ".ie10"এইচটিএমএল উপাদানগুলিতে ক্লাস যুক্ত করার <html class="ie10">পরে আপনি এটির মতো ব্যবহার করতে পারেন.ie10 .myclass {//some css here}
আমির শাহজাদ

8

আমি কেবল ব্রাউজারটি আইই 11 বা তার চেয়ে বেশি বয়স্ক কিনা তা খতিয়ে দেখতে চেয়েছিলাম, কারণ তারা খুব বাজে।

function isCrappyIE() {
    var ua = window.navigator.userAgent;
    var crappyIE = false;
    var msie = ua.indexOf('MSIE ');
    if (msie > 0) {// IE 10 or older => return version number        
        crappyIE = true;
    }
    var trident = ua.indexOf('Trident/');
    if (trident > 0) {// IE 11 => return version number        
        crappyIE = true;
    }
    return crappyIE;
}   

if(!isCrappyIE()){console.table('not a crappy browser);}

2
এটি কনভেনশন স্ট্যান্ডার্ডের নামকরণের জন্য আমার সম্মানের পক্ষে সম্মান
জানায়

7
function detectIE() {
    var ua = window.navigator.userAgent;
    var ie = ua.search(/(MSIE|Trident|Edge)/);

    return ie > -1;
}

প্রশ্নের উত্তর দেয় না। এজ আইই নয়।
এইচডিএ

এইচডিএ, ২০১৩ সালের প্রশ্নের তারিখ, আমি মনে করি যে আজকে "এজ" উপেক্ষা না করা আকর্ষণীয়
বস কোটিগা

5

মডার্নজার ব্যবহার করে

Modernizr.addTest('ie', function () {
    var ua = window.navigator.userAgent;
    var msie = ua.indexOf('MSIE ') > 0;
    var ie11 = ua.indexOf('Trident/') > 0;
    var ie12 = ua.indexOf('Edge/') > 0;
    return msie || ie11 || ie12;
});

এজটি আইই নয় বলে প্রশ্নের উত্তর দেয় না। এছাড়াও এজ IE12 নয়। যখন ক্রোমিয়াম-ভিত্তিক এজ প্রকাশিত হয়, আপনারও এই তালিকাতে ক্রোম বা অপেরা যুক্ত করা উচিত। (আপনি এর মাধ্যমে যা কিছু অর্জন করতে চান, ততক্ষণে ফায়ারফক্স সনাক্ত করা সহজ হবে)
hda

5

বা এই সত্যিই সংক্ষিপ্ত সংস্করণ, ব্রাউজারগুলি যদি ইন্টারনেট এক্সপ্লোরার হয় তবে তা সত্য হয়:

function isIe() {
    return window.navigator.userAgent.indexOf("MSIE ") > 0
        || !!navigator.userAgent.match(/Trident.*rv\:11\./);
}

4

ব্রাউজারটি আইই না কি না তা সনাক্ত করার জন্য আরও একটি সাধারণ (তবুও মানব পাঠযোগ্য) ফাংশন (এজকে উপেক্ষা করে, যা মোটেও খারাপ নয়):

function isIE() {
  var ua = window.navigator.userAgent;
  var msie = ua.indexOf('MSIE '); // IE 10 or older
  var trident = ua.indexOf('Trident/'); //IE 11

  return (msie > 0 || trident > 0);
}

3

আপনি যদি ইউজারেজেন্ট ব্যবহার করতে না চান, আপনি ব্রাউজারটি IE কিনা তা পরীক্ষা করার জন্য এটি করতে পারেন could মন্তব্য করা কোডটি আসলে আইই ব্রাউজারগুলিতে চলে এবং "মিথ্যা "টিকে" সত্য "তে পরিণত করে।

var isIE = /*@cc_on!@*/false;
if(isIE){
    //The browser is IE.
}else{
    //The browser is NOT IE.
}   

1
আইই 11 শর্তসাপেক্ষ সংকলন সমর্থন করে না
গ্যাব্রিয়েল লালামাস

আমি এটি চেষ্টা করেছি এবং এটি এখনও কাজ করে। আপনি কি নিশ্চিত যে এটি সমর্থন করে না?
ডেভলাইফ

3

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

var isIE = false;
if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
    isIE = true;   
}

3

আমি এটি ব্যবহার করেছি

function notIE(){
    var ua = window.navigator.userAgent;
    if (ua.indexOf('Edge/') > 0 || 
        ua.indexOf('Trident/') > 0 || 
        ua.indexOf('MSIE ') > 0){
       return false;
    }else{
        return true;                
    }
}

2

এখানে অনেক উত্তর, এবং আমি আমার ইনপুট যুক্ত করতে চাই। আইই ১১ টি ফ্লেক্সবক্স সম্পর্কিত এমন একটি গাধা ছিল ( এখানে তার সমস্ত সমস্যা এবং অসঙ্গতি দেখুন ) যে কোনও ব্যবহারকারী কোনও আইই ব্রাউজার ব্যবহার করছেন কিনা তা পরীক্ষা করার জন্য আমার সত্যিই একটি সহজ উপায় প্রয়োজন (১১ পর্যন্ত এবং অন্তর্ভুক্ত) তবে এজ বাদে কারণ এজ আসলেই বেশ সুন্দর.

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

var isIE;
(function() {
    var ua = window.navigator.userAgent,
        msie = ua.indexOf('MSIE '),
        trident = ua.indexOf('Trident/');

    isIE = (msie > -1 || trident > -1) ? true : false;
})();

if (isIE) {
    alert("I am an Internet Explorer!");
}

এইভাবে আপনাকে একবার একবার চেহারাটি করতে হবে এবং প্রতিটি ফাংশন কলে ফলাফল আনার পরিবর্তে আপনি ফলটি একটি পরিবর্তনশীল হিসাবে সংরক্ষণ করতে পারেন। (যতদূর আমি জানি যে এমনকি এই কোডটি কার্যকর করার জন্য আপনাকে দস্তাবেজের প্রস্তুতের জন্য অপেক্ষা করতে হবে না কারণ ব্যবহারকারী-এজেন্ট ডোমের সাথে সম্পর্কিত নয়))


2

আপনি ব্যবহার করছেন যদি এই চেষ্টা jQuery সংস্করণ> = 1.9 ,

var browser;
jQuery.uaMatch = function (ua) {
    ua = ua.toLowerCase();

    var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
        /(webkit)[ \/]([\w.]+)/.exec(ua) ||
        /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
        /(msie) ([\w.]+)/.exec(ua) || 
        ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
       /(Trident)[\/]([\w.]+)/.exec(ua) || [];

    return {
        browser: match[1] || "",
        version: match[2] || "0"
    };
};
// Don't clobber any existing jQuery.browser in case it's different
if (!jQuery.browser) {
    matched = jQuery.uaMatch(navigator.userAgent);
    browser = {};

    if (matched.browser) {
        browser[matched.browser] = true;
        browser.version = matched.version;
    }

    // Chrome is Webkit, but Webkit is also Safari.
    if (browser.chrome) {
        browser.webkit = true;
    } else if (browser.webkit) {
        browser.safari = true;
    }

    jQuery.browser = browser;
}

ব্যবহার যদি jQuery এর সংস্করণ <1.9 ($ .browser jQuery এর 1.9 সরানো হয়েছে) নিচের কোডটি ব্যবহার পরিবর্তে:

$('.myClass').on('click', function (event) {
    if ($.browser.msie) {
        alert($.browser.version);
    }
});

এর জন্য ধন্যবাদ. দুর্ভাগ্যক্রমে আমরা এখনও সংস্করণ 1.7.2 এ রয়েছি এবং এটি এখনও পরিবর্তন করতে পারি না।
ব্যবহারকারী 2571510

আমি যতদূর দেখতে পাচ্ছি, এটি নতুন আইইগুলিকে বিবেচনায় নেয় না, যা ট্রাইডেন্ট ইঞ্জিনের উপর ভিত্তি করে।
ব্রাম ভ্যানরোয়

ট্রাইডেন্ট ভিত্তিক সর্বশেষ আই-এর জন্য আপডেট হয়েছে
রোহান কুমার

1

@ স্পাইডারকোডের সমাধান আইই ১১ এর সাথে কাজ করে না Here এখানে আমি আমার কোডটিতে সবচেয়ে ভাল সমাধানটি ব্যবহার করেছি যেখানে নির্দিষ্ট বৈশিষ্ট্যের জন্য আমার ব্রাউজার সনাক্তকরণ প্রয়োজন।

আইই 1111 আর এমএসআইই হিসাবে রিপোর্ট করে না, পরিবর্তনের এই তালিকা অনুসারে, ভুল সনাক্তকরণ এড়াতে ইচ্ছাকৃত।

আপনি যদি সত্যিই এটি জানতে চান তবে আপনি যা করতে পারেন তা হ'ল নেভিগেটর.এপনেম নেটস্কেপ ফেরত দিলে ইউজার এজেন্টের ট্রাইডেন্ট / স্ট্রিংটি সনাক্ত করা;

এই উত্তরের জন্য ধন্যবাদ

function isIE()
{
  var rv = -1;
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  else if (navigator.appName == 'Netscape')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv == -1 ? false: true;
}

1

গুগল করার সময় নীচে আমি এটি করার মার্জিত উপায় খুঁজে পেয়েছি ---

/ detect IE
var IEversion = detectIE();

if (IEversion !== false) {
  document.getElementById('result').innerHTML = 'IE ' + IEversion;
} else {
  document.getElementById('result').innerHTML = 'NOT IE';
}

// add details to debug result
document.getElementById('details').innerHTML = window.navigator.userAgent;

/**
 * detect IE
 * returns version of IE or false, if browser is not Internet Explorer
 */
function detectIE() {
  var ua = window.navigator.userAgent;

  // Test values; Uncomment to check result …

  // IE 10
  // ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';

  // IE 11
  // ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';

  // IE 12 / Spartan
  // ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';

  // Edge (IE 12+)
  // ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586';

  var msie = ua.indexOf('MSIE ');
  if (msie > 0) {
    // IE 10 or older => return version number
    return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
  }

  var trident = ua.indexOf('Trident/');
  if (trident > 0) {
    // IE 11 => return version number
    var rv = ua.indexOf('rv:');
    return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
  }

  var edge = ua.indexOf('Edge/');
  if (edge > 0) {
    // Edge (IE 12+) => return version number
    return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
  }

  // other browser
  return false;
}


1
হ্যাঁ আমি একই ব্যবহার করেছি তবে স্ট্যাক-ওভারফ্লো লোকেরা লিঙ্কটি ভাগ করতে চায় না। এখানে পরবর্তীকালে রেফারেন্স লিঙ্ক আপডেট করবে। মারিও দুর্দান্ত কাজের জন্য ধন্যবাদ।
রামেশ্বর ভাইভাড়ে

1

স্ট্রিং 'এমএসআইই' -1 ফিরে আসে তবে এটি 'ট্রাইডেন্ট' এর সাথে মেলে এমন সমস্যাগুলি ঠিক করতে স্পাইডার কোডের উত্তরে আপডেট করুন। এটি এনএএন ফেরত আসত, তবে এখন আইই সংস্করণের জন্য ১১ টি ফেরত দেয়।

   function msieversion() {
       var ua = window.navigator.userAgent;
       var msie = ua.indexOf("MSIE ");
       if (msie > -1) {
           return ua.substring(msie + 5, ua.indexOf(".", msie));
       } else if (navigator.userAgent.match(/Trident.*rv\:11\./)) {
           return 11;
       } else {
           return false;
       }
    }

0

আপনি সমস্ত ইন্টারনেট এক্সপ্লোরার নির্ধারণ করতে পারেন (শেষ সংস্করণ পরীক্ষা করা 12)।

<script>
    var $userAgent = '';
    if(/MSIE/i['test'](navigator['userAgent'])==true||/rv/i['test'](navigator['userAgent'])==true||/Edge/i['test'](navigator['userAgent'])==true){
       $userAgent='ie';
    } else {
       $userAgent='other';
    }

    alert($userAgent);
</script>

এখানে দেখুন https://jsfiddle.net/v7npeLwe/


0
function msieversion() {
var ua = window.navigator.userAgent;
console.log(ua);
var msie = ua.indexOf("MSIE ");

if (msie > -1 || navigator.userAgent.match(/Trident.*rv:11\./)) { 
    // If Internet Explorer, return version numbe
    // You can do what you want only in IE in here.
    var version_number=parseInt(ua.substring(msie + 5, ua.indexOf(".", msie)));
    if (isNaN(version_number)) {
        var rv_index=ua.indexOf("rv:");
        version_number=parseInt(ua.substring(rv_index+3,ua.indexOf(".",rv_index)));
    }
    console.log(version_number);
} else {       
    //other browser   
    console.log('otherbrowser');
}
}

আপনার কনসোলে ফলাফলটি দেখা উচিত, দয়া করে ক্রোম ইন্সপেক্ট ব্যবহার করুন।


0

আমি এই কোডটি নথির প্রস্তুত ফাংশনে রেখেছি এবং এটি কেবল ইন্টারনেট এক্সপ্লোরারেই ট্রিগার করে। ইন্টারনেট এক্সপ্লোরার 11 এ পরীক্ষিত।

var ua = window.navigator.userAgent;
ms_ie = /MSIE|Trident/.test(ua);
if ( ms_ie ) {
    //Do internet explorer exclusive behaviour here
}

0

এটি কেবল আইই 11 সংস্করণের নীচে কাজ করে।

var ie_version = parseInt(window.navigator.userAgent.substring(window.navigator.userAgent.indexOf("MSIE ") + 5, window.navigator.userAgent.indexOf(".", window.navigator.userAgent.indexOf("MSIE "))));

console.log("version number",ie_version);


0

ইন্টারনেট এক্সপ্লোরার বা এজ এর সংস্করণ সনাক্ত করতে জাভাস্ক্রিপ্ট ফাংশন

function ieVersion(uaString) {
  uaString = uaString || navigator.userAgent;
  var match = /\b(MSIE |Trident.*?rv:|Edge\/)(\d+)/.exec(uaString);
  if (match) return parseInt(match[2])
}

0

Necromancing।

ব্যবহারকারী-এজেন্ট স্ট্রিংয়ের উপর নির্ভর না করার জন্য কয়েকটি বৈশিষ্ট্য পরীক্ষা করে দেখুন:

if (document.documentMode) 
{
    console.log('Hello Microsoft IE User!');
}

if (!document.documentMode && window.msWriteProfilerMark) {
    console.log('Hello Microsoft Edge User!');
}

if (document.documentMode || window.msWriteProfilerMark) 
{
    console.log('Hello Microsoft User!');
}

if (window.msWriteProfilerMark) 
{
    console.log('Hello Microsoft User in fewer characters!');
}

এছাড়াও, এটি নতুন ক্রেজ (আনাহিম) সনাক্ত করে:

function isEdg()
{ 

    for (var i = 0, u="Microsoft", l =u.length; i < navigator.plugins.length; i++)
    {
        if (navigator.plugins[i].name != null && navigator.plugins[i].name.substr(0, l) === u)
            return true;
    }

    return false;
}

এবং এটি ক্রোমিয়াম সনাক্ত করে:

function isChromium()
{ 

    for (var i = 0, u="Chromium", l =u.length; i < navigator.plugins.length; i++)
    {
        if (navigator.plugins[i].name != null && navigator.plugins[i].name.substr(0, l) === u)
            return true;
    }

    return false;
}

এবং এই সাফারি:

if(window.safari)
{
    console.log("Safari, yeah!");
}

-1

এইভাবে করার চেষ্টা করুন

if ($.browser.msie && $.browser.version == 8) {
    //my stuff

}

jQuery এটি 1.3 এ অবমাননিত এবং 1.9 এ সম্পূর্ণ সরানো হয়েছে।
geca

-1

আমি মনে করি এটি এখানে আপনাকে সহায়তা করবে

function checkIsIE() {
    var isIE = false;
    if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
        isIE = true;
    }
    if (isIE)  // If Internet Explorer, return version number
    {
        kendo.ui.Window.fn._keydown = function (originalFn) {
            var KEY_ESC = 27;
            return function (e) {
                if (e.which !== KEY_ESC) {
                    originalFn.call(this, e);
                }
            };
        }(kendo.ui.Window.fn._keydown);

        var windowBrowser = $("#windowBrowser").kendoWindow({
            modal: true,
            id: 'dialogBrowser',
            visible: false,
            width: "40%",
            title: "Thông báo",
            scrollable: false,
            resizable: false,
            deactivate: false,
            position: {
                top: 100,
                left: '30%'
            }
        }).data('kendoWindow');
        var html = '<br /><div style="width:100%;text-align:center"><p style="color:red;font-weight:bold">Please use the browser below to use the tool</p>';
        html += '<img src="/Scripts/IPTVClearFeePackage_Box/Images/firefox.png"/>';
        html += ' <img src="/Scripts/IPTVClearFeePackage_Box/Images/chrome.png" />';
        html += ' <img src="/Scripts/IPTVClearFeePackage_Box/Images/opera.png" />';
        html += '<hr /><form><input type="button" class="btn btn-danger" value="Đóng trình duyệt" onclick="window.close()"></form><div>';
        windowBrowser.content(html);
        windowBrowser.open();

        $("#windowBrowser").parent().find(".k-window-titlebar").remove();
    }
    else  // If another browser, return 0
    {
        return false;
    }
}

-3

তুমি ব্যবহার করতে পার $.browser নাম, বিক্রেতা এবং সংস্করণ তথ্য পেতে ।

Http://api.jquery.com/jQuery.browser/ দেখুন


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