ইন্টারনেট এক্সপ্লোরার-নির্দিষ্ট সিএসএস বা ইন্টারনেট এক্সপ্লোরার-নির্দিষ্ট জাভাস্ক্রিপ্ট কোডের মতো নির্দিষ্ট পরিস্থিতির জন্য আমি কীভাবে কেবলমাত্র ইন্টারনেট এক্সপ্লোরার 10 কে লক্ষ্য করব?


160

ইন্টারনেট এক্সপ্লোরার-নির্দিষ্ট সিএসএস বা ইন্টারনেট এক্সপ্লোরার-নির্দিষ্ট জাভাস্ক্রিপ্ট কোডের মতো নির্দিষ্ট পরিস্থিতির জন্য আমি কীভাবে কেবলমাত্র ইন্টারনেট এক্সপ্লোরার 10 কে লক্ষ্য করব?

আমি এটি চেষ্টা করেছিলাম, কিন্তু এটি কার্যকর হয় না:

<!--[if IE 10]>    <html class="no-js ie10" lang="en"> <![endif]-->
<!--[if !IE]><!--> <html lang="en" class="no-js"> <!--<![endif]-->

ইন্টারনেট এক্সপ্লোরার 10 শর্তাধীন মন্তব্যগুলিকে উপেক্ষা করে এর <html lang="en" class="no-js">পরিবর্তে ব্যবহার করে <html class="no-js ie10" lang="en">


8
আমি মনে করি এর থেকে আরও ভাল প্রশ্ন হবে: আমি উভয় ব্রাউজারে এই সিএসএসটি কীভাবে দেখতে পাব?
বেনটনকোডিং

12
আইই 10 পিপি 4 এখনও @cc_onবিবৃতি সমর্থন করে । সুতরাং, কিনা তা সনাক্ত করতে IE10 সমর্থিত বা না আপনাকে নিম্নলিখিত কোড ব্যবহার করতে পারেন: <!--[if !IE]><!--><script>if(/*@cc_on!@*/false){document.documentElement.className+=' ie10';}</script><!--<![endif]-->(আমি এটি একটি মন্তব্য হিসাবে পোস্ট করেছি, যেহেতু আইই এখনও বিকাশমান, তাই চূড়ান্ত প্রকাশটিও এই বৈশিষ্ট্যটি সমর্থন করে কিনা তা জানা যায় না)
রব ডব্লু

15
@ রবডাব্লু - আপনার উদাহরণ কোডটি ভুল হয়ে যাবে যখন একবার 11 শেষ হয়ে যাবে। উন্নত সংস্করণ: <script>if(Function('/*@cc_on return document.documentMode===10@*/')()){document.documentElement.className+=' ie10';}</script>উন্নতি: শর্তাধীন মন্তব্যগুলির প্রয়োজন নেই; মন্তব্য স্ট্রিপিং সংক্ষেপণ / প্রক্রিয়াজাতকরণ এমনকি এমনকি যদি কাজ করে; আই 11 এর জন্য কোনও শ্রেণি যুক্ত হয়নি; IE10 সামঞ্জস্যতা মোডে চলমান ie11 এর সাথে কাজ করবে; স্বতন্ত্র স্ক্রিপ্ট ট্যাগের প্রয়োজন নেই (কেবলমাত্র অন্য জাভাস্ক্রিপ্টে মাথায় যুক্ত করা যেতে পারে)।
রোবোক্যাট

2
উপরের কোড স্নিপেটের উদাহরণ: jsbin.com/upofoq/2
রোবোক্যাট

8
আরও জেনেরিক সমাধান হ'ল: if(document.documentMode) document.documentElement.className+=' ie'+document.documentMode+'mode';- যা 90% ইস্যু সমাধান করে (কখনও কখনও সামঞ্জস্যতা মোড ব্যর্থ হয়, এক্ষেত্রে আপনাকে তার উপরে আরও একটি স্তর স্থির করতে হবে)।
রোবোক্যাট

উত্তর:


65

সম্ভবত আপনি কিছু jQuery চেষ্টা করতে পারেন:

if ($.browser.msie && $.browser.version === 10) {
  $("html").addClass("ie10");
}

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

আমার জন্য বেশ সূক্ষ্ম কাজ। তবে অবশ্যই শর্তাধীন মন্তব্যের কোনও প্রতিস্থাপন নেই!


3
আমি আপনাদের সম্পর্কে নিশ্চিত নই তবে == '10.0'এটির কাজ করার জন্য আমার ব্যবহার করা দরকার
লুলালালা

112
সতর্কতা: jQuery.browserপ্লাগইন ছাড়া jQuery (1.9) এর বর্তমান সংস্করণে আর উপলব্ধ নেই। blog.jquery.com/2013/01/15/…
dave1010

2
আমি সুপারিশ করব: IE এর পুরানো সংস্করণগুলি সনাক্ত করতে <10 10if (jQuery.browser.msie && jQuery.browser.version < 10) { // do what you will here } এর ভেরিয়ানটি নোট করুন ।
আইই

1
@ উদ্যান কারণ সমস্ত আই ব্রাউজারগুলিতে শর্তাধীন মন্তব্যগুলি 10 টিরও কম ব্রাউজারগুলিতে আপনার জেএসকে গোলমাল করার পরিবর্তে সেগুলি ব্যবহার করে। কেবল <! - [যদি lte আই 9]]> এবং আপনি 10 এর চেয়ে কম সমস্ত আইই সংস্করণ লক্ষ্য করতে পারেন তবে কোনও জেএস প্রয়োজন নেই।
এডুরটিগ

1
@ মার্ক-অ্যান্ড্রু লাফোর্টুন একটি ভাল বক্তব্য উত্থাপন করেছে। থাম্বের নিয়ম হিসাবে আপনার সর্বদা === অপারেটর ব্যবহার করা উচিত এবং == নয়। জাভাস্ক্রিপ্ট রাইটিং করার সময় আপনার এ সম্পর্কে সচেতন হওয়া দরকার। stackoverflow.com/questions/359494/…
স্টিয়ার্ট

132

আমি জাভাস্ক্রিপ্ট navigator.userAgentবা b ব্রাউজার ব্যবহার করব না (যেটি ব্যবহার করে navigator.userAgent) এটি স্পোফড হতে পারে।

ইন্টারনেট এক্সপ্লোরার 9, 10 এবং 11 লক্ষ্য করতে (দ্রষ্টব্য: সর্বশেষতম ক্রোমও):

@media screen and (min-width:0\0) { 
    /* Enter CSS here */
}

ইন্টারনেট এক্সপ্লোরার 10 লক্ষ্য করতে:

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
    /* IE10+ CSS here */
}

এজ ব্রাউজারটিকে লক্ষ্য করতে:

@supports (-ms-accelerator:true) {
  .selector { property:value; } 
}

সূত্র:


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

লোকেরা সাধারণত নথি মোড পরিবর্তন করে না। তারা পারে, তবে আমি এমন কোনও সাইট জুড়ে আসিনি যার জন্য ব্যবহারকারীর ডকুমেন্ট মোড পরিবর্তন করতে হবে। আপনি যদি সঠিক ডকুমেন্ট ব্যবহার করছেন তবে এটি মোটেই সমস্যা নয়।
রনি

3
আপনি আমার নায়ক! কেবলমাত্র একটি নোট, এটি
আই 11

8
এটি আইই ১১-কেও প্রভাবিত করে - সুতরাং আপনি যদি কেবল আইই 9/10 টার্গেট করার সমাধান খুঁজছেন তবে এইটি কাজ করবে না :-(
লুকাশ লেনার্ট

1
"এঁরা সকলেই ব্রাউজারটি সনাক্ত করছেন" এর অর্থ কী navigator.userAgent? শর্তসাপেক্ষ সংকলনটি JScript রানটাইমের একটি অন্তর্নির্মিত বৈশিষ্ট্য, যা ব্যবহারকারী-এজেন্ট স্ট্রিংয়ের মাধ্যমে ছদ্মবেশী করা যায় না।
BoltClock

111

আমি এই সাইটে একটি সমাধান পেয়েছি যেখানে কারও মূল্যবান মন্তব্য ছিল :

সমাধানটি হ'ল:

if (Function('/*@cc_on return document.documentMode===10@*/')()){
    document.documentElement.className+=' ie10';
}

এটা

  • শর্তসাপেক্ষ মন্তব্যের প্রয়োজন নেই;
  • মন্তব্য স্ট্রিপিং সংক্ষেপণ / প্রক্রিয়াজাতকরণ এমনকি যদি কাজ করে;
  • ইন্টারনেট এক্সপ্লোরার 11-এ কোনও 10 টি ক্লাস যুক্ত হয়নি;
  • ইন্টারনেট এক্সপ্লোরার 11 ইন্টারনেট এক্সপ্লোরার 10 সামঞ্জস্যতা মোডে চলমান সাথে কাজ করার সম্ভাবনা বেশি;
  • স্বতন্ত্র স্ক্রিপ্ট ট্যাগের প্রয়োজন নেই (কেবল মাথায় থাকা অন্য জাভাস্ক্রিপ্ট কোডে যুক্ত করা যেতে পারে)।
  • পরীক্ষার জন্য jQuery প্রয়োজন হয় না

3
@ dave1010 ব্যবহারকারীর এজেন্টগুলি সহজেই ছলনা করা যায়। শর্তাধীন মন্তব্যগুলি কেবল জেএসক্রিপ্ট ইঞ্জিন দ্বারা সমর্থিত, যা কেবল আইই 4 + এ উপলব্ধ (10 টি সহ)।
রব ডব্লু

2
@ dave1010 একটি ওয়ার্কিং পার্সার লেখা যা আপনি যা বর্ণনা করছেন তা করা কঠিন এবং অত্যন্ত অসম্ভব। যে কেউ ইচ্ছাকৃতভাবে এ জাতীয় একটি এক্সটেনশান তৈরি করে এবং ইনস্টল করে সে সম্ভবত আইই ("উইন্ডোজ নন-এনভায়রনমেন্টে স্বয়ংক্রিয় পরীক্ষার উদ্দেশ্যে?)" "এর মতো কাজ করতে চায়"? ব্রাউজারগুলিতে 100% বিশ্বাসের নিশ্চয়তা কখনই পাওয়া যায় না তবে আপনি পর্যাপ্ত পরিমাণে পেতে পারেন। শর্তাধীন মন্তব্যগুলি জেএসক্রিপ্ট ইঞ্জিন সনাক্ত করার জন্য একটি অত্যন্ত নির্ভরযোগ্য উপায়, যা আইই দ্বারা ব্যবহৃত হয়।
রব ডব্লু

3
কেবলমাত্র অসুবিধা আমি দেখতে পাচ্ছি যে এটির জন্য জেএস দরকার, যা শর্তসাপেক্ষে করেনি
জেমস ওয়েস্টগেট

4
এটি শীর্ষের উত্তর হতে হবে এবং আইএস 10 ব্যবহারকারীদের জন্য জেএসের প্রয়োজনীয়তাটি হওয়া উচিত - যদি জেএস অক্ষম থাকে তবে এটি সম্ভবত নোস্ক্রিপ্ট অ্যাডন হবে। আমি মনে করি নোস্ক্রিপ্টের নিখুঁত বোকামি (অ্যাডব্লক বা ঘোস্টারির মতো বুদ্ধিমান অ্যাডনগুলির বিপরীতে) সম্পর্কে আমাদের আরও জনশিক্ষার প্রয়োজন।
আয়নো

8
আমি লেখকের দ্বারা প্রদত্ত বিকল্প কোডটি ব্যবহার করার পরামর্শ দেব: if (/*@cc_on!@*/false && document.documentMode === 10) {}যা লিটিং প্রোগ্রামগুলিতে ইওল সতর্কতাগুলির কাছাকাছি চলে আসে।
আজবিয়ান

62

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

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

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

বেশ জটিল মনে হচ্ছে, তবে মনে রাখবেন যে আধুনিক ব্রাউজার হিসাবে এটি আজকের ওয়েব স্ট্যান্ডার্ড 1 এর সাথে অত্যন্ত সঙ্গতিপূর্ণ , আপনি ধরে নিচ্ছেন যে আন্তঃযোগিতামূলক কোডটি উচ্চমানের-অনুবর্তী, আপনি একেবারে প্রয়োজনীয় না হলে IE10 এর জন্য বিশেষ কোড আলাদা করে রাখা উচিত নয় , অর্থাত্ এটি আচরণ এবং রেন্ডারিংয়ের ক্ষেত্রে অন্যান্য ব্রাউজারগুলির সাথে সাদৃশ্যযুক্ত। 2 এবং এটি আই-এর ইতিহাসে দেওয়া সুদূরপ্রসারী মনে হচ্ছে, তবে আপনি কতবার ফায়ারফক্স বা ক্রোমকে একইভাবে আচরণ করবেন বলে আশা করেছেন কেবলমাত্র হতাশার সাথে মিলিত হওয়ার জন্য?

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


1 শুধুমাত্র আইই 10 নয়, আইই 9, এবং আইই 8 যা বেশিরভাগ পরিপক্ক সিএসএস 2.1 স্ট্যান্ডার্ডকে ক্রোমের চেয়ে অনেক ভাল পরিচালনা করে, কেবল কারণ আই 88 মান সম্মতিতে এত বেশি কেন্দ্রীভূত ছিল (সেই সময়ে CSS2.1 ইতিমধ্যে কেবলমাত্র সামান্য পার্থক্য সহ বেশ স্থিতিশীল ছিল আজকের সুপারিশ থেকে) ক্রোমটি কাট-এজ সিউডো-স্ট্যান্ডার্ডগুলির অর্ধ-পালিশযুক্ত টেক ডেমোর চেয়ে কিছুটা বেশি বলে মনে হচ্ছে।

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


20
ছহহ, হ্যাঁ, আইই 10 এখনও ওয়েবকিট এবং গেকো থেকে অনেক পিছনে। আমার কাছে কিছু সিএসএস রয়েছে ওয়েবকিট এবং আইই 10-এ লুক্কায়িত nice আমি যদি শৈলীগুলি নির্বাচন করে প্রয়োগ করার কোনও উপায় খুঁজে না পাই তবে আমাকে এই জাতীয় শৈলীগুলি ত্যাগ করতে হবে। :(
trusktr

2
আইটি 10 ​​তে শর্তসাপেক্ষ মন্তব্যগুলি সরানো হয়েছে কারণ এটি এখন একটি এইচটিএমএল 5 পার্সারযুক্ত হওয়ায় এটি উল্লেখযোগ্য। শর্তাধীন মন্তব্যগুলি HTML5 পার্সিং অ্যালগরিদম অনুযায়ী বৈধ নয়। ব্লগস.এমএসডিএন
ডেভিড স্টোরি

3
@trusktr আপনি যদি এটিকে ভাল কোড করেন তবে সর্বশেষতম ব্রাউজারগুলিতে এটি দেখতে ভাল লাগবে।
ক্লিভিস মিহো

10
@ ক্লিভিসমিহো সত্য নয়, Chrome এবং ফায়ারফক্সগুলি এমন বৈশিষ্ট্যগুলি সমর্থন করে যা IE এর নেই, এমনকি ভাল কোডিং থাকলেও। যদি আপনার অর্থ "কেবলমাত্র সাধারণ বৈশিষ্ট্যগুলি ব্যবহার করুন" তবে এটি "কোড ভাল" এর মতো একরকম নয়।
trusktr

5
@ ড্যান মান্তিলা: সেক্ষেত্রে,<!--[if !IE]><!-->stuff you don't want IE9 and below to see<!--<![endif]-->
বোল্টক্লক

36

শুরু করার জন্য একটি ভাল জায়গা হ'ল আইই স্ট্যান্ডার্ড সমর্থন ডকুমেন্টেশন

জাভাস্ক্রিপ্টে IE10 কীভাবে টার্গেট করা যায় তা এখানে:

if ("onpropertychange" in document && !!window.matchMedia) {
...
}

সিএসএসে কীভাবে IE10 টার্গেট করবেন তা এখানে রয়েছে:

@media all and (-ms-high-contrast: none) {
...
}

আইই ১১ কে সিএসএসের মাধ্যমে ফিল্টার করা বা পুনরায় সেট করা দরকার, অন্য একটি প্রশ্ন দেখুন: আইই 11 এর জন্য সিএসএস হ্যাক কীভাবে লিখবেন?


5
আপনার সিএসএস সমাধানটি আইই 11 কেও প্রভাবিত করে: \
লুকাশজ লেনার্ট

11

উভয় সমাধান এখানে পোস্ট করা হয়েছে (সামান্য পরিবর্তন সহ) কাজ করুন:

<!--[if !IE]><!--><script>if(/*@cc_on!@*/false){document.documentElement.className='ie10';}</script><!--<![endif]-->

অথবা

<script>if(Function('/*@cc_on return 10===document.documentMode@*/')()){document.documentElement.className='ie10';}</script>

আপনার সিএসএস লিঙ্কের আগে আপনি এইচটিএমএল পৃষ্ঠার শীর্ষ ট্যাগের অভ্যন্তরে উপরের দুটি লাইন অন্তর্ভুক্ত করুন। এবং তারপরে সিএসএস ফাইলে আপনি আপনার স্টাইলগুলি পিতামাতা হিসাবে "ie10" শ্রেণি দ্বারা নির্দিষ্ট করেছেন:

.ie10 .myclass1 { }

ও ভয়েল! - অন্যান্য ব্রাউজার অক্ষত থাকে। এবং আপনার jQuery দরকার নেই। আমি এটি এখানে কীভাবে প্রয়োগ করেছি উদাহরণটি দেখতে পারেন: http://kardash.net


11

আমি লেআউট ইঞ্জিন নামে একটি ছোট, ভ্যানিলা জাভাস্ক্রিপ্ট প্লাগইন লিখেছি , যা আপনাকে আইই 10 (এবং প্রতিটি অন্যান্য ব্রাউজার) সনাক্ত করার বৈশিষ্ট্য দেয়, এমন এক সহজ উপায়ে যা ব্যবহারকারী এজেন্ট স্নিগিংয়ের বিপরীতে নকল হতে পারে না।

এটি এইচটিএমএল ট্যাগে শ্রেণি হিসাবে রেন্ডারিং ইঞ্জিনের নাম যুক্ত করে এবং একটি জাভাস্ক্রিপ্ট বস্তুটি বিক্রেতা এবং সংস্করণ (যেখানে উপযুক্ত সেখানে) প্রদান করে

আমার ব্লগ পোস্টটি দেখুন: http://mattstow.com/layout-engine.html এবং গিটহাবে কোডটি পান: https://github.com/stowball/Layout-Engine


7

আমি এই স্ক্রিপ্ট ব্যবহার - এটি অপ্রচলিত, কিন্তু একটি টার্গেটিং কার্যকর পৃথক ইন্টারনেট এক্সপ্লোরার 10 শৈলী পত্রক বা জাভাস্ক্রিপ্ট ফাইল অন্তর্ভুক্ত করা হয় যে শুধুমাত্র যদি ব্রাউজার Internet Explorer 10, একই ভাবে আপনি শর্তাধীন মন্তব্য would হয়। কোন jQuery বা অন্যান্য প্লাগইন প্রয়োজন হয় না।

<script>
    /*@cc_on
      @if (@_jscript_version == 10)
          document.write(' <link type= "text/css" rel="stylesheet" href="your-ie10-styles.css" />');
      @end
    @*/
</script >

2
কুল। আপনি কি এই @ স্টেটমেন্টগুলি সম্পর্কে একটি সামান্য তথ্য যুক্ত করতে পারেন?
trusktr

6

আপনি 10 এর জন্য স্টাইলশীট যুক্ত করতে পিএইচপি ব্যবহার করতে পারেন

ভালো লেগেছে:

if (stripos($_SERVER['HTTP_USER_AGENT'], 'MSIE 10')) {
    <link rel="stylesheet" type="text/css" href="../ie10.css" />
}

2
স্ট্রিপগুলি কেস সংবেদনশীল নয় বলে স্ট্রিংয়ের উপরেরটি বোঝায় না;)
মিগুতউট

2
আমি সর্বদা এটির জন্য প্রলোভন করি তবে তারপরে মনে রাখবেন যে সামনে সিডিএন / ক্যাশে / প্রক্সি থাকলে তা ভেঙে যায়।
জোহান

5

আপনার যদি এটি করতেই হয় তবে আপনি জাভাস্ক্রিপ্টে ব্যবহারকারী এজেন্ট স্ট্রিং পরীক্ষা করতে পারেন:

var isIE10 = !!navigator.userAgent.match(/MSIE 10/);

অন্যান্য লোকেরা যেমন উল্লেখ করেছে, আমি তার পরিবর্তে সর্বদা বৈশিষ্ট্য সনাক্তকরণের পরামর্শ দেব।


`` !! what কিসের জন্য?
ফ্রান্সিসকো

4
String.match()কোনও ম্যাচের জন্য একটি অ্যারের ফেরত দেবে বা যদি তা শূন্য হয় না। !(String.match())এটি কোনও ম্যাচের জন্য মিথ্যা বা কোনও ম্যাচের জন্য সত্যকে ফিরিয়ে দেয়। !(!(String.match()))এটি কোনও ম্যাচের জন্য সত্য বা কোনও মিলের জন্য মিথ্যা হিসাবে প্রত্যাবর্তন করে। !(!(something))বা কেবলমাত্র !!somethingকোনও বুলিয়ানকে সত্য / মিথ্যাতে রূপান্তরিত করে। stackoverflow.com/questions/784929/...
dave1010

@ ফ্রেঞ্চিসকো কররেলেস মোরেলস ওহ, আমার কোডটি যাচাই-বাছাইয়ের সময় আমাকে কতবার জিজ্ঞাসা করা হয়েছিল। :) ডেভ 1010 এর দুর্দান্ত মন্তব্যের সম্প্রসারণ হিসাবে এটি 'সত্যবাদী' বা 'মিথ্যাবাদী' মানগুলিকে অন্তর্নিহিত booleanমান হিসাবে বাধ্য করতে ব্যবহার করা যেতে পারে , যেমন var name = 'me', hasName = !!name;
WynandB

4

আপনি যদি ভ্যানিলা জাভাস্ক্রিপ্টের সাহায্যে আইই 10 লক্ষ্য করতে চান, আপনি সিএসএস সম্পত্তি সনাক্তকরণ চেষ্টা করতে পারেন:

if (document.body.style.msTouchAction != undefined) {
  document.body.className = 'ie10';
}

সিএসএসের বৈশিষ্ট্য

পরিবর্তে msTouchActionআপনি এইগুলির মধ্যে একটি সিএসএস বৈশিষ্ট্যও ব্যবহার করতে পারেন কারণ সেগুলি বর্তমানে কেবল আইই 10 তে উপলব্ধ But তবে ভবিষ্যতে এটি পরিবর্তিত হতে পারে।

  • msTouchAction
  • msWrapFlow
  • msWrapMargin
  • msWrapThrough
  • msScrollLimit
  • msScrollLimitXMin
  • msScrollLimitYMin
  • msScrollLimitXMax
  • msScrollLimitYMax
  • msFlexbox
  • msFlex
  • msFlexOrder

পরীক্ষার পৃষ্ঠা

আমি কোডপেনে সমস্ত সম্পত্তি সহ একটি পরীক্ষার পৃষ্ঠা রেখেছি।


3

ক্লিপবোর্ডডাটা এমন একটি ফাংশন যা কেবল আইই তে উপলব্ধ, তাই যদি আপনি সমস্ত আইই সংস্করণ লক্ষ্য করতে চান তবে আপনি ব্যবহার করতে পারেন

<script type="text/javascript">
if (window.clipboardData)
            alert("You are using IE!");
</script>

-1: তবে সংস্করণগুলি কী? কোন সংস্করণটি আপনি কীভাবে বলতে পারেন?
ফ্রান্সিসকো

এজ ব্রাউজারটিতে "উইন্ডো.ক্লিপবোর্ডডেটা" নেই
এএফডি

@ এএফডি এই প্রশ্নটি এজ সম্পর্কে নয়, এজ সম্পর্কে।
টাইলার

3

আই 10 10 এবং আই 9 এর জন্য সিএসএস

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
    /* IE10+ styles */
}

@media screen\0 {
    /* IE8,9,10 styles*/
}

1

ব্রাউজারটি আইই 10 বা এর চেয়ে বড় কিনা তা দেখতে আপনি বৈশিষ্ট্য সনাক্তকরণ ব্যবহার করতে পারেন:

var isIE = false;
if (window.navigator.msPointerEnabled) {
    isIE = true;
}

শুধুমাত্র সত্য যদি> আই 9



1

জাভাস্ক্রিপ্ট সহ:

if (/Trident/g.test(navigator.userAgent)) { // detect trident engine so IE
        document.getElementsByTagName('html')[0].className= 'no-js ie'; }

সমস্ত আইই জন্য কাজ।

IE08 => 'Trident/4.0'

IE09 => 'Trident/5.0'

IE10 => 'Trident/6.0'

IE11 => 'Trident/7.0'

সুতরাং যেখানে বা (অথবা ভবিষ্যতের জন্য হতে পারে ) /Trident/gদ্বারা পরিবর্তন করুন ।/Trident/x.0/gx = 4, 5, 678


1

আমি কেবল আইই সনাক্তকরণের আমার সংস্করণটি যুক্ত করতে চেয়েছিলাম। এটি http://james.padolsey.com/javascript/detect-ie-in-js- using-conditional-comments/ এ পাওয়া স্নিপেটের উপর ভিত্তি করে using-conditional-comments/ এবং IE10 এবং ie11 সমর্থন করার জন্যও বহাল রয়েছে। এটি আইই 5 থেকে 11 সনাক্ত করে।

আপনাকে যা করতে হবে তা হ'ল এটি কোথাও যুক্ত করা এবং তারপরে আপনি সর্বদা একটি সহজ শর্ত দিয়ে পরীক্ষা করতে পারেন। isIEএটি কোনও আইই না হলে গ্লোবাল ভার অপরিশোধিত হবে, নাহলে এটি সংস্করণ নম্বর হবে। সুতরাং আপনি সহজে if (isIE && isIE < 10)বা অনুরূপ জিনিসগুলি সহজেই যুক্ত করতে পারেন ।

var isIe = (function(){
    if (!(window.ActiveXObject) && "ActiveXObject" in window) { return 11; /* IE11 */ }
    if (Function('/*@cc_on return /^10/.test(@_jscript_version) @*/')()) { return 10; /* IE10  */ }
    var undef,
        v = 3, div = document.createElement('div'), all = div.getElementsByTagName('i');
    while (
        div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
            all[0]
        );
    return v > 4 ? v : undef;
}());

0

আমার জন্য নিম্নলিখিত কোডটি সূক্ষ্মভাবে কাজ করে, সমস্ত শর্তাধীন মন্তব্যগুলি সমস্ত আইই সংস্করণে কাজ করছে:

<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]>    <html class="ie7"> <![endif]-->
<!--[if IE 8 ]>    <html class="ie8"> <![endif]-->
<!--[if IE 9 ]>    <html class="ie9"> <![endif]-->
<!--[if (gt IE 11)|!(IE)]><!--> <html> <!--<![endif]-->

<script>
    if (document.documentMode===10){
        document.documentElement.className+=' ie10';
    }
    else if (document.documentMode===11){
        document.documentElement.className+=' ie11';
    }
</script>

আমি উইন্ডোজ 8.1 এ আছি, নিশ্চিত না এটি আইডি 11 আপডেটের সাথে সম্পর্কিত কিনা ...


1
(gt IE 11)বিট সম্পূর্ণভাবে অপ্রয়োজনীয়। আপনি পাশাপাশি <!--[if !(IE)]<!-->পরিবর্তে করতে পারেন।
BoltClock

যদি (জিটি আইই ১১) বাদ পড়ে থাকে এবং ব্যবহারকারীর ব্রাউজারটি আইই 12 হয় (যখন এটি বেরিয়ে আসে) কোনও এইচটিএমএল উপাদান সংজ্ঞায়িত হবে না।
লিওনার্দো গঞ্জালেজ

0

ইন্টারনেট এক্সপ্লোরারের জন্য আমি কীভাবে কাস্টম সিএসএস করব:

আমার জাভাস্ক্রিপ্ট ফাইলটিতে:

function isIE () {
      var myNav = navigator.userAgent.toLowerCase();
      return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false;
}

jQuery(document).ready(function(){
    if(var_isIE){
            if(var_isIE == 10){
                jQuery("html").addClass("ie10");
            }
            if(var_isIE == 8){
                jQuery("html").addClass("ie8");
                // you can also call here some function to disable things that 
                //are not supported in IE, or override browser default styles.
            }
        }
    });

এবং তারপরে আমার সিএসএস ফাইলে y প্রতিটি ভিন্ন স্টাইলকে সংজ্ঞায়িত করুন:

.ie10 .some-class span{
    .......
}
.ie8 .some-class span{
    .......
}


0

এই কোড জেএস রূপান্তর করতে বাবেল বা টাইপস্ক্রিপ্ট ব্যবহার করুন

const browser = () => {
    // "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3576.0 Safari/537.36"
    // "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.17 Safari/537.36"
    // "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763"
    // "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0"
    // "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; rv:11.0) like Gecko"
    // "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)"
    // "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)"
    // "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)"
    // "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)"
    const _userAgent = navigator.userAgent;
    const br = {
        "Chrome": "Chrome",
        "Edge": "Edge",
        "Firefox": "Firefox",
        ".NET CLR": "Internet Explorer 11",
    };
    const nobr = {
        "MSIE 10.0": "Internet Explorer 10",
        "MSIE 9.0": "Internet Explorer 9",
        "MSIE 8.0": "Internet Explorer 8",
        "MSIE 7.0": "Internet Explorer 7"
    };
    let thisBrow = "Unknown";
    for (const keys in br) {
        if (br.hasOwnProperty(keys)) {
            if (_userAgent.includes(keys)) {

                thisBrow = br[keys];

                for (const key in nobr) {
                    if (_userAgent.includes(key)) {
                        thisBrow = nobr[key];
                    }
                }

            }
        }
    }

    return thisBrow;
};


হাই আলিক্সান্ডার, ধারণার জন্য ধন্যবাদ! কেউ কেন ক্ষমতায় এসেছিল তা নিশ্চিত নয়, তবে উত্তরটি কমপক্ষে একটি সহায়ক ইঙ্গিত বলে আমি উর্ধ্বতন দিয়েছি। যে কমে যায়, নতুন পরামর্শদাতাকে সহায়ক পরামর্শ দিয়ে সাহায্য করবে না কেন?
trusktr

-2

এই উত্তরটি আমাকে সেখানে 90% পথ পেয়েছে। আমি আমার বাকী উত্তরটি মাইক্রোসফ্ট সাইটে পেয়েছি

নীচের কোডটি আমি সমস্ত লক্ষ্য হিসাবে ব্যবহার করছি অর্থায়নে .ie বর্গ যোগ করে <html>

.Ie ক্লাস যুক্ত করতে jQuery (যা 1.9+ তে ব্যবহারকারী এজেন্টদের পক্ষে অবচয়িত। ব্রাউজারটি ব্যবহার করুন, http://api.jquery.com/jQuery.browser/ দেখুন ) ব্যবহার করুন:

// ie identifier
$(document).ready(function () {
  if (navigator.appName == 'Microsoft Internet Explorer') {
    $("html").addClass("ie");
  }
});

"যেটি 1.9+ এ ব্যবহারকারী এজেন্টদের পক্ষে। ব্রাউজারকে অবমানিত করেছে" এটি "ব্যবহারকারী এজেন্টদের পক্ষে" বলে না - যার অর্থ যাই হোক না কেন - এটি বৈশিষ্ট্য সনাক্তকরণের পক্ষে বলেছে ।
BoltClock

-2

আপনি যদি আই 10 এবং তার উপরের এবং আই আই ব্রাউজারগুলি লক্ষ্য করে আপত্তি না করেন তবে আপনি এই শর্তযুক্ত মন্তব্যটি ব্যবহার করতে পারেন:

<!--[if gt IE 9]><!--> Your code here. <!--<![endif]-->

Http://www.paulirish.com/2008/ শর্তাধীন- স্টাইলশিটস-vs-css-hacks-answer- থেকে প্রাপ্ত


1
আমি আপনার উত্তরটি -1 করিনি তবে লিঙ্কটি কিছুটা পুরানো বলে মনে হচ্ছে- আট- বয়সের । এটিও লক্ষণীয় যে ওপি কেবলমাত্র আইই 10 এবং আইই 10 কে টার্গেট করতে চেয়েছিল। নির্বিশেষে, আপনার কোড স্নিপেট IE10 এবং উপরের বা অন্য কোনও নন-আইই ব্রাউজারের জন্য কাজ করবে না, কারণ শর্তাধীন মন্তব্যগুলি কেবল আইই 5 পর্যন্ত আই 9 পর্যন্ত সমর্থিত।
WynandB

-2

আপনার যদি সত্যিই করতে হয়, আপনি নীচের লাইনটি যুক্ত করে শর্তযুক্ত মন্তব্যগুলি কাজ করতে পারেন <head>:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">

উৎস


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