ইন্টারনেট এক্সপ্লোরার 11 সনাক্তকরণ


125

আমি জানি যে আইই 11 এর অন্যান্য আই-এর চেয়ে আলাদা ব্যবহারকারী এজেন্ট স্ট্রিং রয়েছে

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

আমি এই প্রশ্নের জন্য নির্দিষ্ট উত্তর সহ IE 11 সনাক্ত করার চেষ্টা করেছি '

জিকিউই আইই 11 সনাক্ত করতে ব্যর্থ

এখানেই !!navigator.userAgent.match(/Trident\/7\./)

তবে আমি ত্রুটি পাচ্ছি Object not found and needs to be re-evaluated.

তারপরে আমি আইই 11 এ বিকাশকারী কনসোল খুলি এবং কিছু পূর্বনির্ধারিত জাভাস্ক্রিপ্ট অবজেক্ট অ্যাক্সেস করার চেষ্টা করেছি, আমি এখনও একই ত্রুটি পাচ্ছি am

আমি চেষ্টা করেছি

navigator.userAgent

window.navigator

console.log('test');

এটি সম্পর্কে কারও ধারণা আছে?


@ بابখিন আমি আমার ইস্যুটির উপরে উল্লেখ করেছি। ত্রুটি হচ্ছেObject not found and needs to be re-evaluated.
মিকদাদ আলী


উত্তর:


188

18 নভেম্বর 2016 সম্পাদনা করুন

এই কোডটিও কাজ করে ( যারা অ্যাক্টিভএক্স ব্যবহার না করেই আরও একটি সমাধান পছন্দ করেন )

var isIE11 = !!window.MSInputMethodContext && !!document.documentMode;
  // true on IE11
  // false on Edge and other IEs/browsers.

আসল উত্তর

Ie11 পরীক্ষা করতে, আপনি এটি ব্যবহার করতে পারেন: (পরীক্ষিত)

(বা রান এই )

!(window.ActiveXObject) && "ActiveXObject" in window

আইই এর সমস্ত ভিএমএস রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

বিজ্ঞপ্তি: এই 1111 এর জন্য কাজ করবে না:

আপনি এখানে দেখতে পারেন, এটি সত্য ফিরে:

এখানে চিত্র বর্ণনা লিখুন

তাহলে আমরা কি করতে পারি :

স্পষ্টতই, তারা মেশিন বিট স্থান যুক্ত করেছে:

ie 11:

"Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; rv:11.0) like Gecko"

ie12:

"Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; rv:11.0) like Gecko"

সুতরাং আমরা করতে পারি:

/x64|x32/ig.test(window.navigator.userAgent)

এটি শুধুমাত্র ie11 এর জন্য সত্য হবে।


1
@Jan। হ্যাঁ. এই পুরো শর্তের জন্য কেবল আইই 1111 সত্যই ফিরে আসবে। আমি কেবল দেখিয়েছি <11 প্রত্যাবর্তন মিথ্যা।
রই নমির

1
@ ইয়ানস্টেফি এটি অপারেশনের ফলাফল (!) দেখানোর জন্যই। আপনি একটি HTML ফাইল খুলতে এবং স্ক্রিপ্ট ট্যাগ যুক্ত করতে পারেন এবং সেই স্ক্রিপ্টের ভিতরে কমান্ডটি চালাতে পারেন। এখানে এটি চালান
রই নমির

2
x64ক্রোম এবং এজ উভয়ই প্রদান করে
জিন আর

3
অপেক্ষা করুন, একটি আইই 12 আছে? আমি ভেবেছিলাম আইই 11 শেষ ছিল এবং শীঘ্রই আমাদের আর সেই বোকা ব্রাউজারটি নিয়ে আর চিন্তা করতে হবে না! ☹
মাইকেল শ্যাপার

1
না না উইন্ডোজ 7 এন্টারপ্রাইজ আমার আই ই 11.0.9600.19431 জন্য কাজ করি। নেই window.MSInputMethodContext
হেইনরিচ উলব্রিচ্ট

105

এমএসআইই (6 থেকে 11 সংস্করণ পর্যন্ত) দ্রুত সনাক্ত করতে:

if(navigator.userAgent.indexOf('MSIE')!==-1
|| navigator.appVersion.indexOf('Trident/') > -1){
   /* Microsoft Internet Explorer detected in. */
}

2
দ্বিতীয়টি indexOf()হওয়া উচিত নয় > -1?
সংস্কার করা হয়েছে

হ্যাঁ, আমি কেন জানি না যে এটি <0 এবং না> -1, তবে "ট্রাইডেন্ট /" অ্যাপ্লিকেশনটির স্ট্রিংয়ের মধ্যে আরও অনেক কিছু দেখায়-
ক্রিসমার্ক

22

আমি IE এর 9, 10 এবং 11 সংস্করণ সনাক্ত করতে নিম্নলিখিত ফাংশনটি ব্যবহার করি:

function ieVersion() {
    var ua = window.navigator.userAgent;
    if (ua.indexOf("Trident/7.0") > -1)
        return 11;
    else if (ua.indexOf("Trident/6.0") > -1)
        return 10;
    else if (ua.indexOf("Trident/5.0") > -1)
        return 9;
    else
        return 0;  // not IE9, 10 or 11
}  

21

উপরের উত্তরগুলির সমস্তগুলি এড়িয়ে যায় যে আপনি উল্লেখ করেছেন যে আপনার কোনও উইন্ডো বা নেভিগেটর নেই :-)

তারপরে আমি আইই 11 এ বিকাশকারী কনসোল খুলি

এবং যেখানে এটি বলে সেখানে ts

অবজেক্টটি পাওয়া যায় নি এবং পুনরায় মূল্যায়ন করা দরকার।

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


5
ধার্মিকতা অনুগ্রহ করে আসলে প্রশ্নটি পড়ার জন্য এবং পুনরায় মূল্যায়নের মাধ্যমে সমস্যার উত্তর দেওয়ার জন্য আপনাকে ধন্যবাদ।
মার্কনেডাল

8
আমার জন্যও কাজ করেছেন। এই কারণেই আইই মারা গেলে বিশ্বজুড়ে পার্টি করা হবে।
ভোল্ট্রেভো

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

7

শুধুমাত্র আইই 11 শনাক্ত করার একটি দুর্দান্ত নিরাপদ এবং সংক্ষিপ্ত উপায় হ'ল

if(window.msCrypto) { /* I'm IE11 for sure */ }

বা এই জাতীয় কিছু
var IE11= !!window.msCrypto;


msCryptoএকটি পূর্বে সমাধান সংস্করণ window.cryptoবস্তু এবং শুধুমাত্র আই ই 11. বাস্তবায়িত
https://developer.mozilla.org/en-US/docs/Web/API/Window/crypto


একমাত্র কার্যক্ষম সমাধান (এটি সবচেয়ে সংক্ষিপ্ততম, সবচেয়ে পরিষ্কার এবং সবচেয়ে মার্জিত একটি)! /x64|x32/ig.test(window.navigator.userAgent)ফায়ারফক্সেও রয়ির নামির প্রয়োগ!
সানডোর জুবোলি

4

এবং আমি কীভাবে এটি বাস্তবায়ন করেছি

<script type="text/javascript">
  !(window.ActiveXObject) && "ActiveXObject"
  function isIE11(){
    return !!navigator.userAgent.match(/Trident.*rv[ :]*11\./);
  }
</script>

1
আমার মনে হয় আপনার ফাংশনে একটি টাইপ আছে। প্রথমত, আপনি শর্ত যাচাই করেন, যা ব্যবহৃত হয় না। দ্বিতীয়ত, সম্ভবত আপনি বলতে চাইছেন && "ActiveXObject" in window। তৃতীয়: দ্বিগুণ অবহেলা নিয়ে কী কৌশল !!?
dma_k

1
!! বেশিরভাগ অর্থ 'কোরেস টু বুলিয়ান'।
অ্যান্ড্রু গ্রে

4

ঠিক আছে, এটি চেষ্টা করুন সহজ এবং 11 সংস্করণের নীচে আই 11 এবং আইই জন্য

browserIsIE = navigator.userAgent.toUpperCase().indexOf("TRIDENT/") != -1 || navigator.userAgent.toUpperCase().indexOf("MSIE") != -1;

navigator.userAgent.toUpperCase().indexOf("TRIDENT/") != -111 সংস্করণের navigator.userAgent.toUpperCase().indexOf("MSIE") != -1নীচে আইই জন্য 11 সংস্করণ

browserIsIE = navigator.userAgent.toUpperCase().indexOf("TRIDENT/") != -1 || navigator.userAgent.toUpperCase().indexOf("MSIE") != -1;

console.log('Is IE Browser : '+ browserIsIE)


2

এই লিঙ্কটি সহায়ক ছিল । এটিতে আইই ১১ পর্যন্ত সমস্ত সংস্করণ সনাক্ত করার জন্য এটিতে জাভাস্ক্রিপ্ট কোড রয়েছে। আমি স্ক্রিপ্টটি আইই ১১ এমুলেটর দিয়ে পরীক্ষা করেছি। IE11 এমুলেটরটি সন্ধান করতে, ওয়েব ব্রাউজারে ডান ক্লিক করুন "উপাদানটি পরীক্ষা করুন" ক্লিক করুন। পৃষ্ঠার নীচে-বামে, নেভিগেশন বার থেকে নীচে স্ক্রোল করুন এবং ডেস্কটপ আইকনটি ক্লিক করুন। "ইউজার এজেন্ট স্ট্রিং" ড্রপডাউন বাক্সে আই 6-6 অনুকরণ করার বিকল্প রয়েছে।

এটা কাজ করে। আমি এই উত্তরটি লেখার কয়েক মিনিট আগে এটি ব্যবহার করেছি। স্ন্যাপশট পোস্ট করতে পারবেন না - যথেষ্ট খ্যাতি নেই।


এই কোডটি - আবার দেখার জন্য লিঙ্কটি অনুসরণ করুন:

// Get IE or Edge browser version
var version = detectIE();

if (version === false) {
  document.getElementById('result').innerHTML = '<s>IE/Edge</s>';
} else if (version >= 12) {
  document.getElementById('result').innerHTML = 'Edge ' + version;
} else {
  document.getElementById('result').innerHTML = 'IE ' + version;
}

// 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';

  // Edge 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 13
  // 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;
}
@import url(https://fonts.googleapis.com/css?family=Fira+Mono|Fira+Sans:300);
body {
  color: black;
  background-color: white;
  font-family: "Fira Sans", sans-serif;
  font-weight: 300;
  margin: 0;
  padding: 3rem;
}

h1 {
  color: darkgrey;
  text-align: center;
  font-weight: 300;
  font-size: 1.5rem;
  line-height: 2rem;
}

h2 {
  text-align: center;
  font-weight: 300;
  font-size: 4rem;
}

p {
  color: darkgrey;
  text-align: center;
  font-family: "Fira Mono", monospace;
  font-size: 1rem;
  line-height: 1.5rem;
}
<h1>Detect IE/Edge version with JavaScript.<br> Updated to recognize Internet Explorer 12+ aka Edge.</h1>
<h2 id="result">detecting…</h2>
<p id="details">n/a</p>


1

এই রেজিপ্যাক্সটি ব্যবহার করা আইই 10 এবং আইই 11 এর জন্য কাজ করে বলে মনে হচ্ছে:

function isIE(){
    return /Trident\/|MSIE/.test(window.navigator.userAgent);
}

এটি পরীক্ষা করার জন্য আমার কাছে আইই 10 এর চেয়ে পুরনো কোনও IE নেই।


0

নেভিগেটর ব্যবহার করুন: -

এটি navigatorহ'ল এমন একটি বস্তু যা ক্লায়েন্ট মেশিনের ব্রাউজার সম্পর্কে সমস্ত তথ্য ধারণ করে।

navigator.appName ক্লায়েন্ট মেশিনের ব্রাউজারের নাম ফেরত দেয়।

navigator.appName === 'Microsoft Internet Explorer' ||  !!(navigator.userAgent.match(/Trident/) || navigator.userAgent.match(/rv:11/)) || (typeof $.browser !== "undefined" && $.browser.msie === 1) ? alert("Please dont use IE.") : alert("This is not IE")
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


1
অ্যাপ্লিকেশনটি আইই ১১-তে নেটস্কেপ develop
কাগনোনিক

0

আমি পেয়েছি আইআই 11 বিভিন্ন পরিবেশে একাধিক ব্যবহারকারী এজেন্ট স্ট্রিং দিচ্ছে।

MSIEএবং অন্যান্য পদ্ধতির উপর নির্ভর করার পরিবর্তে Tridentসংস্করণে নির্ভর করা ভাল

const isIE11 = userAgent => userAgent.match(/Trident\/([\d.]+)/) ? +userAgent.match(/Trident\/([\d.]+)/)[1] >= 7;

আশাকরি এটা সাহায্য করবে :)

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