কীভাবে আই 11 সনাক্ত করবেন?


212

আমি যখন আইই সনাক্ত করতে চাই তখন আমি এই কোডটি ব্যবহার করি:

function getInternetExplorerVersion()
{
  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 );
  }
  return rv;
}
function checkVersion()
{
  var msg = "You're not using Internet Explorer.";
  var ver = getInternetExplorerVersion();

  if ( ver > -1 )
  {
    msg = "You are using IE " + ver;
  }
  alert( msg );
}

তবে আইই ১১ ফিরিয়ে দিচ্ছে "আপনি ইন্টারনেট এক্সপ্লোরার ব্যবহার করছেন না"। আমি কীভাবে এটি সনাক্ত করতে পারি?



1
ব্যবহারকারী এজেন্ট উপর ভিত্তি করে কিছু ত্রুটিযুক্ত। এটি বকাঝকা করা খুব সহজ, এখন, এটি হতে পারে যে এটি কোনও সমস্যা নয় তবে এটি আমার কাছে মনে হয় যে একটি ব্রাউজার সনাক্তকরণ স্ক্রিপ্টের মাস্ক্রেডিং সনাক্তকরণের উপযুক্ত সুযোগ থাকা উচিত। আমি শর্তযুক্ত মন্তব্যগুলির সংমিশ্রণটি ব্যবহার করি, ডকুমেন্ট.ডোকামেন্টমোডকে জোর করে দেখার চেষ্টা করার জন্য পতনের মাধ্যমে এবং তারপরে উইন্ডোটি দেখুন MSএমএসআইপুটমেথকন্টেক্সট নীচে পল সুইট অনুসারে। আমি আমার কোড পোস্ট করব তবে এটি একটি মৃত ঘোড়াতে চাবুক মারছে।
ডেভিড জি

3
আইই ১১-এর ব্যবহারকারী-এজেন্ট রয়েছে: মজিলা / 5.0 (উইন্ডোজ এনটি 6.1; ডাব্লুডাব্লুওউ; 643; ট্রাইডেন্ট / 7.0; আরভি: 11.0) গেকো ওস প্রকারের মতো: 6.1 - উইন 7, 6.3 - win81
রেজার

1
আমার উত্তর এখানে দেখতে stackoverflow.com/questions/21825157/...
Royi Namir

1
এখানে সবচেয়ে ভালো সমাধান আমি পেয়েছি আছে: stackoverflow.com/a/20201867/2047385 করেন (Object.hasOwnProperty.call (উইন্ডো, "ActiveXObject") && window.ActiveXObject!) {// IE11 হয়}
xorcus

উত্তর:


221

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

আপনি যদি সত্যিই এটি জানতে চান তবে আপনি যা করতে পারেন তা হ'ল রিটার্ন Trident/হলে ব্যবহারকারী এজেন্টের স্ট্রিংটি সনাক্ত করা , এমন কিছু (অনির্ধারিত);navigator.appNameNetscape

function getInternetExplorerVersion()
{
  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;
}

console.log('IE version:', getInternetExplorerVersion());

মনে রাখবেন যে আইই 11 (আফাইক) এখনও পূর্বরূপে রয়েছে এবং ব্যবহারকারী এজেন্ট প্রকাশের আগে পরিবর্তন করতে পারে।


81
it's intentional to avoid mis-detection- দুঃখের বিষয়, এখন আইআই ১১ প্রকাশিত হয়েছে, আমাদের কাছে এমন কোড রয়েছে যা কেবল আইই ১১ এ নষ্ট হয়ে গেছে , তবে
আইইয়ের

68
সংস্করণটি কম গুরুত্বপূর্ণ হলে এই সমাধানটি আমি একটি বুলিয়ানে রূপান্তর করেছিfunction isIE() { return ((navigator.appName == 'Microsoft Internet Explorer') || ((navigator.appName == 'Netscape') && (new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})").exec(navigator.userAgent) != null))); }
rg89

6
@ লজকাটা - এখানে এইচটিএমএল 5 অনুসারে, আইআই আসলে মান অনুসরণ করছে। সুতরাং হ্যাঁ, এটি ইচ্ছাকৃত, তবে এটি নতুন স্ট্যান্ডার্ড অনুসারে (পুরানো এইচটিএমএল
এপিআইকে অবজ্ঞা করছে

11
"তারা এর কারণটি ইচ্ছাকৃতভাবে করেছিল They তারা ব্রাউজার সনাক্তকরণের স্ক্রিপ্টগুলি এভাবে ভাঙতে চেয়েছিল।" স্ট্যাকওভারফ্লো . com/a/18872067/1066234 থেকে ... আসলে এটি হওয়া উচিত: 'তারা বিলিয়ন ওয়েবসাইটকে এভাবে ভাঙতে চেয়েছিল।'
কাই নোক

15
এটি আমার জন্য কাজ করে: var isIE11 = !!navigator.userAgent.match(/Trident\/7\./); উত্স
কাই নোক

86

!(window.ActiveXObject) && "ActiveXObject" in windowআইই 11 স্পষ্টভাবে সনাক্ত করতে ব্যবহার করুন ।

যে কোনও আইই (প্রাক-এজ, "ট্রাইডেন্ট") সংস্করণ সনাক্ত করতে "ActiveXObject" in windowতার পরিবর্তে ব্যবহার করুন।


2
মাইক্রোসফ্টের এই নিবন্ধটি পরামর্শ দেয় যে এই সমাধানটি আর কাজ করতে পারে না এমএসডিএন.ইমিক্রোসফটি.ইন.ইউএস
অ্যালান

5
আসলে, এই নিবন্ধটি আমার পদ্ধতিটি কেন কাজ করে তা বর্ণনা করে। window.ActiveXObjectনিবন্ধে বর্ণিত হিসাবে অ্যাক্সেসের চেষ্টা করা , undefinedএখন আইই 11-এ ফিরে আসে (পাশাপাশি মাইক্রোসফ্ট অবিহীন ব্রাউজারগুলিও) জাভাস্ক্রিপ্ট inঅপারেটর ব্যবহার করে পরীক্ষাটি trueসমস্ত মাইক্রোসফ্ট ব্রাউজারগুলিতে ফিরে আসে , তাই উভয়ই আইই 11 তে কঠোরভাবে কেস হয়। মাইক্রোসফ্ট যদি inঅপারেটরের আচরণে কোনও পরিবর্তন জারি করে তবে হ্যাঁ, এই পদ্ধতিটি ভেঙে যাবে।
এমসিডব্লিউ

5
উইন্ডোতে "অ্যাক্টিভএক্সবজেক্ট" প্রান্তে মিথ্যা প্রদান করে।
নিও

8
@ নিও এজ আইই নয়, অপির প্রশ্ন ছিল কীভাবে আইই
মস্তাজি

1
@ মাস্তাজি হ্যাঁ তবে এই উত্তরে এটি উল্লেখ করা হয়েছে যে কোনও আইই সংস্করণ সনাক্ত করতে অ্যাক্টিভএক্সবজেক্ট ব্যবহার করা যেতে পারে। যদিও এটি বিতর্কযোগ্য যে এজকে আইই এর সংস্করণ বলা উচিত বা না (মাইক্রোসফ্ট অবশ্যই এটিকে কল করতে চায় না), তবে অনেক বিকাশকারীদের জন্য আইই কোনও ডিফল্ট মাইক্রোসফ্ট ব্রাউজারের প্রতিশব্দ হয়ে উঠেছে।
নিও

45

2
এটি আমার কাছে আরও দৃ .় বলে মনে হয়। অবশ্যই ব্যবহারকারী এজেন্ট উপর ভিত্তি করে কিছু নিখুঁত অকেজো।
ডেভিড জি

1
এটি অ্যাক্টিভএক্সবজেক্টের পরিবর্তে কাজ করেছে। অনেক ধন্যবাদ
তারেক Özgün Güner

1
@ দখখলা আইই এজটি ফিল্টার করার জন্য আপডেট হয়েছে।
পল সুইট

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

1
#falseআই -8, IE8,9,10, এজ 14,15 এ সবেমাত্র নিশ্চিত হয়েছে। #trueআইই 11 এ কেবল সক্রিয় দস্তাবেজ মোড দিয়ে পরীক্ষা করা হয়নি। ব্রাউজারস্ট্যাক দিয়ে পরীক্ষা করা হয়েছে।
ডানজাহ

15

আমি আপনার উত্তরগুলি পড়েছি এবং একটি মিশ্রণ তৈরি করেছি। এটি উইন্ডোজ এক্সপি (আই 7 / আইই 8) এবং উইন্ডোজ 7 (আই 9 / আইই 10 / আই 11) এর সাথে কাজ করছে বলে মনে হচ্ছে।

function ie_ver(){  
    var iev=0;
    var ieold = (/MSIE (\d+\.\d+);/.test(navigator.userAgent));
    var trident = !!navigator.userAgent.match(/Trident\/7.0/);
    var rv=navigator.userAgent.indexOf("rv:11.0");

    if (ieold) iev=new Number(RegExp.$1);
    if (navigator.appVersion.indexOf("MSIE 10") != -1) iev=10;
    if (trident&&rv!=-1) iev=11;

    return iev;         
}

অবশ্যই আমি যদি 0 ফিরে আসি তবে তার মানে কোনও আইই নয়।


12

ব্যবহারকারী-এজেন্ট থেকে আইই সংস্করণ পান

var ie = 0;
try { ie = navigator.userAgent.match( /(MSIE |Trident.*rv[ :])([0-9]+)/ )[ 2 ]; }
catch(e){}

এটি কীভাবে কাজ করে: সমস্ত আইই সংস্করণগুলির জন্য ব্যবহারকারী-এজেন্ট স্ট্রিংয়ের একটি অংশ "এমএসআইই স্পেস সংস্করণ " বা "ট্রাইডেন্ট অন্যান্য-পাঠ্য আরভি স্পেস-বা-কোলন সংস্করণ " অন্তর্ভুক্ত রয়েছে। এটি জানতে পেরে আমরা একটি String.match()নিয়মিত প্রকাশের থেকে সংস্করণ নম্বরটি দখল করি । try-catchকোডটি সংক্ষিপ্ত করতে একটি ব্লক ব্যবহার করা হয়, অন্যথায় আমাদের নন-আইই ব্রাউজারগুলির জন্য অ্যারে সীমা পরীক্ষা করতে হবে।

দ্রষ্টব্য: ব্যবহারকারী-এজেন্টকে বানোয়াট বা বাদ দেওয়া যেতে পারে, কখনও কখনও অনিচ্ছাকৃত যদি ব্যবহারকারী তাদের ব্রাউজারটিকে একটি "সামঞ্জস্যতা মোড" এ সেট করে থাকেন। যদিও বাস্তবে এটি কোনও ইস্যুর মতো বলে মনে হচ্ছে না।


ব্যবহারকারী-এজেন্ট ছাড়াই আইই সংস্করণ পান

var d = document, w = window;
var ie = ( !!w.MSInputMethodContext ? 11 : !d.all ? 99 : w.atob ? 10 : 
d.addEventListener ? 9 : d.querySelector ? 8 : w.XMLHttpRequest ? 7 : 
d.compatMode ? 6 : w.attachEvent ? 5 : 1 );

এটি কীভাবে কাজ করে: আইই এর প্রতিটি সংস্করণ পূর্ববর্তী সংস্করণগুলিতে পাওয়া যায় না এমন অতিরিক্ত বৈশিষ্ট্যগুলির জন্য সমর্থন যোগ করে । সুতরাং আমরা বৈশিষ্ট্যগুলির জন্য টপ-ডাউন পদ্ধতিতে পরীক্ষা করতে পারি। এখানে একটি ত্রৈমাসিক ক্রমটি বংশবৃদ্ধির জন্য ব্যবহৃত হয়, যদিও if-thenএবং switchবিবৃতিগুলি ঠিক তেমন কাজ করবে। ভেরিয়েবলটি ie5-10 বা একটি পুরানো বা 1 বা 99 / নতুন / নন-আইইয়ের জন্য সেট করা হয়। আপনি যদি ঠিক 1-11- র জন্য পরীক্ষা করতে চান তবে আপনি এটি 0 তে সেট করতে পারেন।

নোট: যদি আপনার কোডটি মতো জিনিসগুলির জন্য polyfills যোগ তৃতীয় পক্ষের স্ক্রিপ্টের কোনো পৃষ্ঠায় চালানো হয় অবজেক্ট সনাক্তকরণ ভঙ্গ করতে পারে document.addEventListener। এই ধরনের পরিস্থিতিতে ব্যবহারকারী-এজেন্ট সেরা বিকল্প।


ব্রাউজারটি আধুনিক কিনা তা সনাক্ত করুন

যদি আপনি কেবল ব্রাউজার বেশিরভাগ এইচটিএমএল 5 এবং সিএসএস 3 স্ট্যান্ডার্ডকে সমর্থন করে বা না তা নিয়ে আগ্রহী হন তবে আপনি যুক্তিসঙ্গতভাবে ধরে নিতে পারেন যে IE 8 এবং এর চেয়ে কম প্রাথমিক সমস্যার অ্যাপ্লিকেশন রয়েছে। এর জন্য পরীক্ষা করা window.getComputedStyleআপনাকে আধুনিক ব্রাউজারগুলির মোটামুটি ভাল মিশ্রণ দেয় (আই 9, এফএফ 4, ক্রোম 11, সাফারি 5, অপেরা 11.5)। আইই 9 9 স্ট্যান্ডার্ড সাপোর্টে ব্যাপকভাবে উন্নতি করে তবে নেটিভ সিএসএস অ্যানিমেশনের জন্য আইই 10 দরকার।

var isModernBrowser = ( !document.all || ( document.all && document.addEventListener ) ); 

'ইউজার-এজেন্টের থেকে আইই সংস্করণ পান' সুন্দরভাবে কাজ করে! শুধু নিশ্চিত হতে, এটি আই 11 সহ সমস্ত সংস্করণ প্রদর্শন করবে?
Omer

1
@ উমর হ্যাঁ, কারণ এটি "এমএসআইই" বা "ট্রাইডেন্ট" স্ট্রিংটির সন্ধান করে; দ্বিতীয়টি 11 বা তদূর্ধ্ব ব্যবহার করে। এমএস এর ব্রাউজার ইঞ্জিনের নাম পরিবর্তন না করা পর্যন্ত এটি ভবিষ্যতের সমস্ত আইই সংস্করণগুলির জন্য কাজ করবে। আমি বিশ্বাস করি যে নতুন এজ ব্রাউজারটি এখনও ট্রাইডেন্ট ব্যবহার করে।
বিজেজর

এটি দুর্দান্ত কাজ করে, ধন্যবাদ @ বিজোর! আমি আপনার উত্তরটি ব্যবহার করে অন্য পৃষ্ঠায় একটি সরল পুনর্নির্দেশনা প্রয়োগ করেছি: var ie = 0; try { ie = navigator.userAgent.match( /(MSIE |Trident.*rv[ :])([0-9]+)/ )[ 2 ]; } catch(e){} if (ie !== 0) { location.href = "../ie-redirect/redirect.html"; }
বার্নার্ডভি

@ বার্নার্ডভি দেখতে ভাল লাগছে! একটি দ্রুত পরামর্শ: আপনার যদি সার্ভারে অ্যাক্সেস থাকে তবে কোনও স্ক্রিপ্টে ব্যবহারকারী-এজেন্ট সনাক্তকরণ আরও ভাল কাজ করতে পারে, কারণ ব্যবহারকারী কোনও পুনর্নির্দেশ / ঝাঁকুনি, কম এইচটিটিপি অনুরোধ ইত্যাদিকে লক্ষ্য করবেন না, তবে একটি চিম্টি দিয়ে এটি করছেন জেএসও কাজ করে।
বিজেজর

9

কৌণিক জেএস এইভাবে করে।

msie = parseInt((/msie (\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]);
if (isNaN(msie)) {
  msie = parseInt((/trident\/.*; rv:(\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]);
}

ক্রিস, ফায়ারফক্সের মতো অন্যান্য ব্রাউজারের জন্য যদি এর আইই এবং নাএন থাকে তবে এমএসি ইতিবাচক নম্বর হবে।

কেন?

ইন্টারনেট এক্সপ্লোরার 11 হিসাবে, ব্যবহারকারী-এজেন্ট স্ট্রিং উল্লেখযোগ্যভাবে পরিবর্তিত হয়েছে।

এটি উল্লেখ করুন:

এমএসডিএন # 1 এমএসডিএন # 2


7

সমাধান:

function GetIEVersion() {
  var sAgent = window.navigator.userAgent;
  var Idx = sAgent.indexOf("MSIE");
  // If IE, return version number.
  if (Idx > 0)
    return parseInt(sAgent.substring(Idx+ 5, sAgent.indexOf(".", Idx)));

  // If IE 11 then look for Updated user agent string.
  else if (!!navigator.userAgent.match(/Trident\/7\./))
    return 11;

  else
    return 0; //It is not IE

}
if ((GetIEVersion() > 0) || (navigator.userAgent.toLowerCase().indexOf('firefox') > -1)){
  alert("This is IE " + GetIEVersion());
}else {
  alert("This no is IE ");
}		


1
আমার প্রিয় - আই 6-10 এবং আই 11 এর জন্য অ্যাকাউন্ট। আমি পাশাপাশি প্রান্তের জন্য একটি চেক যোগ করেছি
AlbatrossCafe

এটি ফায়ারফক্সকে সনাক্ত করেThis is IE 0
কেএসপিআর

3

আমি একটি সহজ পদ্ধতি ব্যবহার করছি:

নেভিগেটর গ্লোবাল অবজেক্টটির একটি সম্পত্তি টাচপয়েন্ট রয়েছে, ইন্টারনেট এক্সপ্লোরার ১১-তে এমএসম্যাক্স টাচপয়েন্টস বলে।

সুতরাং যদি আপনি সন্ধান করেন:

navigator.msMaxTouchPoints !== void 0 

আপনি ইন্টারনেট এক্সপ্লোরার 11 পাবেন।


1
এটি আইই 10 (উইন 7)
কেমিক্যাল প্রোগ্রামার

2
var ua = navigator.userAgent.toString().toLowerCase();
var match = /(trident)(?:.*rv:([\w.]+))?/.exec(ua) ||/(msie) ([\w.]+)/.exec(ua)||['',null,-1];
var rv = match[2];
return rv;

আপনি যদি চেক করতে একটি রেজেক্স ব্যবহার করে থাকেন তবে .toLowerCase () এর পরিবর্তে, আপনি এটি পতাকা সংবেদন সংবেদনশীল করতে যুক্ত করতে পারেন make .ToString () পদ্ধতির প্রয়োজন নেই।
জ্যাক রাউসেল

2

এটা চেষ্টা কর:

var trident = !!navigator.userAgent.match(/Trident\/7.0/);
var net = !!navigator.userAgent.match(/.NET4.0E/);
var IE11 = trident && net
var IEold = ( navigator.userAgent.match(/MSIE/i) ? true : false );
if(IE11 || IEold){
alert("IE")
}else{
alert("Other")
}

ভুল কোড কারণ অ্যাকো ব্রাউজার ইউজারেজেন্টে "এমএসআইই" ব্যবহার করে। এ useragentstring.com/pages/Acoo%20Browser
ব্যবহারকারী

ভুল যুক্তি। আমি সমস্ত আইই ব্রাউজারগুলি, এমনকি উইন 8 ডিভাইসগুলিও পরীক্ষা করেছি।
ক্রুনাল

আপনি আইই ১১ ব্রাউজারটি পরীক্ষা করেছেন তবে অ্যাকো ব্রাউজার নয় এবং অ্যাকো ব্রাউজারটি ইউএসজেডে "এমএসআইই" ব্যবহার করেছে যেমনটি আমি আপনাকে বলি তাই আইওল্ডও অ্যাকো ব্রাউজারটিকে আইইল্ড (আইই এর পুরাতন সংস্করণ) হিসাবে সনাক্ত করে এবং আমি নিশ্চিত যে অ্যাকো ব্রাউজারটি ব্যবহার করে " MSIE "useragent কারন আমি একটি JavaScript পরীক্ষা সাইট Acoo ব্রাউজার দিয়ে উপর navigator.userAgent করেনি থাকেন মধ্যে (টেস্ট সাইট: w3schools.com )
ব্যবহারকারী

আপনি কি দয়া করে এর জন্য আরও ভাল সমাধান দিতে পারেন?
ক্রুনাল

আপনি ব্যবহার করতে পারেন !navigator.userAgent.match("Acoo Browser;") && navigator.userAgent.match(/MSIE/i) ? true : falseতবে এটি সর্বদা কাজ করে না কারণ অ্যাকো ব্রাউজারে সর্বদা "অ্যাকো ব্রাউজার থাকে না;" এর ইউজারেজেন্টে তবে আসলে আপনার অ্যাকো ব্রাউজারটির ব্যবহারকারীর মধ্যে "এমএসআইই" রয়েছে সে সম্পর্কে আপনার যত্ন নেওয়া দরকার না কারণ অ্যাকু ব্রাউজারটি প্রায় থিসাম।
ব্যবহারকারী

1

এটি একটি ভাল পদ্ধতি বলে মনে হয়। "ইনডেক্স অফ" কিছু মিল না থাকলে -1 প্রদান করে। এটি শরীরে বিদ্যমান ক্লাসগুলি ওভাররাইট করে না, কেবল তাদের যুক্ত করে।

// add a class on the body ie IE 10/11
var uA = navigator.userAgent;
if(uA.indexOf('Trident') != -1 && uA.indexOf('rv:11') != -1){
    document.body.className = document.body.className+' ie11';
}
if(uA.indexOf('Trident') != -1 && uA.indexOf('MSIE 10.0') != -1){
    document.body.className = document.body.className+' ie10';
}

0

এটি দিয়ে বেশিরভাগ ব্রাউজারগুলি সনাক্ত করুন:

var getBrowser = function(){
  var navigatorObj = navigator.appName,
      userAgentObj = navigator.userAgent,
      matchVersion;
  var match = userAgentObj.match(/(opera|chrome|safari|firefox|msie|trident)\/?\s*(\.?\d+(\.\d+)*)/i);
  if( match && (matchVersion = userAgentObj.match(/version\/([\.\d]+)/i)) !== null) match[2] = matchVersion[1];
  //mobile
  if (navigator.userAgent.match(/iPhone|Android|webOS|iPad/i)) {
    return match ? [match[1], match[2], mobile] : [navigatorObj, navigator.appVersion, mobile];
  }
  // web browser
  return match ? [match[1], match[2]] : [navigatorObj, navigator.appVersion, '-?'];
};

https://gist.github.com/earlonrails/5266945


0

আমি onscrollস্ক্রোলবার সহ উপাদানটিতে ইভেন্টটি ব্যবহার করেছি । আই-তে ট্রিগার করা হলে আমি নিম্নলিখিত বৈধতাটি যুক্ত করেছি:

onscroll="if (document.activeElement==this) ignoreHideOptions()"

0

শুধুমাত্র আইই ব্রাউজারের জন্য:

var ie = 'NotIE'; //IE5-11, Edge+
    if( !!document.compatMode ) {
        if( !("ActiveXObject" in window) ) ) ie = 'EDGE';
        if( !!document.uniqueID){
            if('ActiveXObject' in window && !window.createPopup ){ ie = 11; }
            else if(!!document.all){
                    if(!!window.atob){ie = 10;}
                    else if(!!document.addEventListener) {ie = 9;}
                    else if(!!document.querySelector){ie = 8;}
                    else if(!!window.XMLHttpRequest){ie = 7;}
                    else if(!!document.compatMode){ie = 6;}
                    else ie = 5;
                }
        }
    }

সতর্কতা (যেমন) ব্যবহার;

পরীক্ষামূলক:

var browserVersionExplorer = (function() {
    var ie = '<s>NotIE</s>',
        me = '<s>NotIE</s>';

    if (/msie\s|trident\/|edge\//i.test(window.navigator.userAgent) && !!(document.documentMode || document.uniqueID || window.ActiveXObject || window.MSInputMethodContext)) {
            if (!!window.MSInputMethodContext) {
                ie = !("ActiveXObject" in window) ? 'EDGE' : 11;
            } else if (!!document.uniqueID) {
                if (!!(window.ActiveXObject && document.all)) {
                    if (document.compatMode == "CSS1Compat" && !!window.DOMParser ) {
                        ie = !!window.XMLHttpRequest ? 7 : 6;
                    } else {
                        ie = !!(window.createPopup && document.getElementById) ? parseFloat('5.5') : 5;
                    }
                    if (!!document.documentMode && !!document.querySelector ) {
                        ie = !!(window.atob && window.matchMedia) ? 10 : ( !!document.addEventListener ? 9 : 8);
                    }
                } else ie = !!document.all ? 4 : (!!window.navigator ? 3 : 2);
            }
        }
        
    return ie > 1 ? 'IE ' + ie : ie;
})();

 alert(browserVersionExplorer);

আপডেট 01 জুন 2017

এখন আমরা সহজ এবং সহজ কিছু ব্যবহার করতে পারি:

var uA = window.navigator.userAgent,
    onlyIEorEdge = /msie\s|trident\/|edge\//i.test(uA) && !!( document.uniqueID || window.MSInputMethodContext),
    checkVersion = (onlyIEorEdge && +(/(edge\/|rv:|msie\s)([\d.]+)/i.exec(uA)[2])) || NaN;

এজের নতুন সংস্করণগুলিতে যুক্ত হওয়া নতুন মানক গ্লোবাল অবজেক্টগুলি কোথায় পাব? আমি অনুমান করি ম্যাথ.অকোষ এর মধ্যে একটি।
j4v1

1
@ j4v1 ম্যাথ.একোশ কেবল মাইক্রোসফ্ট এজ (এজ ব্রাউজার) এ সমর্থিত। রেফ: এমএসডিএন.মাইক্রোসফটকম /en-us/en-en/library/dn858239(v=vs.94).aspx
জেমস পিটার

এই পদ্ধতিটি আমার পক্ষে কাজ করা বন্ধ করে দিয়েছে। অতীতে এটি আই 1111 সঠিকভাবে সনাক্ত করেছে তবে এখন আমার কাছে উইন্ডোজ 10 এন্টারপ্রাইজে চালিত ইন্টারনেট এক্সপ্লোরার সংস্করণ 11.1198.14393.0 (আপডেট সংস্করণ 11.0.42 (KB4018271)) রয়েছে (সংস্করণ 1607, ওএস বিল্ড 14393.1198) ম্যাথটি অ্যাকোশ পদ্ধতিটিকে সমর্থন করে বলে মনে হচ্ছে।
থিজেস

উইন্ডোজ 10 শিক্ষায় @ থিজগুলি আইই 11 বনাম 11.1198.14393.0 সহ আমি সফলভাবে পরীক্ষা করেছি। আপনার ES6 অনুসারে অন্য একটি গণিত ফাংশন চেষ্টা করা উচিত।
জেমস পিটার

@ জামেসপিটার আমি ডকুমেন্ট.ডোকামেন্টমোড পরীক্ষা করে নেমে এসেছি। আইই 11 বা এজ পরীক্ষা করার জন্য এটি আরও নির্ভরযোগ্য সম্পত্তি বলে মনে হয়। ডকুমেন্টমোড আইই ১১ এ বিদ্যমান তবে এজ তে আর বিদ্যমান নেই।
থিজ

0

বেশ স্পষ্টভাবে আমি বলব যে একটি লাইব্রেরি ব্যবহার করুন যা আপনার যা প্রয়োজন তা করে (উদাহরণস্বরূপ প্ল্যাটফর্ম.জেএস এর মতো)। কিছু সময়ে জিনিসগুলি পরিবর্তন হবে এবং গ্রন্থাগারটি সেই পরিবর্তনগুলির জন্য সজ্জিত হবে এবং নিয়মিত প্রকাশের সাহায্যে ম্যানুয়াল বিশ্লেষণ ব্যর্থ হবে।

Godশ্বরকে ধন্যবাদ জানাই দূরে চলে যান ...

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