যদি কোনও ব্রাউজার "quirks" মোডে থাকে তবে কীভাবে বলবেন?


128

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

আপনি কীভাবে বলতে পারেন (বা: কী নির্ধারণ করবে) যখন ব্রাউজারটি আরও বেশি মান সম্মত ইঞ্জিন ব্যবহার না করে "কুইক" মোডে যাওয়ার সিদ্ধান্ত নেয়?

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

উত্তর:


159

ইন Firefox এবং অপেরা আপনি নির্ধারণ করতে পারেন যদি আপনার ব্রাউজার পৃষ্ঠা তথ্য চেক করে "quirks মোড" রয়েছে।

ব্যবহার করা document.compatMode, আপনাকে বেশিরভাগ ব্রাউজারের সাথে থাকা মোডটি বলবে।

ইন ক্রোম, সাফারি, ইন্টারনেট এক্সপ্লোরার , ঠিকানা বারে এই JavaScript চালানোর:

 javascript:window.alert('You are in ' + (document.compatMode==='CSS1Compat'?'Standards':'Quirks') + ' mode.')

(নোট করুন যে javascript:সাম্প্রতিক সুরক্ষা পরিবর্তনের কারণে আপনার ঠিকানা বারে আটকানোর পরে আপনাকে আবার অংশটি টাইপ করতে হবে )


আইই-তে আরও একটি সম্ভাব্য মান রয়েছে যা পুরানো পৃষ্ঠাটিকে "এজ" মোডে বাধ্য করার সময় আমি এসে পৌঁছেছিলাম। মানটি ছিল "ব্যাককম্যাট"
গ্রেগ উডস

সম্পূর্ণভাবে অবৈধ কিছুতে ডক্টইপিকে সেট করার সময় আমি ক্রোমে ব্যাককম্যাট পেয়েছিলাম। এই উত্তরের কোড অনুসারে, মানটি যদি CSS1Compat ব্যতীত অন্য কিছু হয় তবে এটি কুইর্কস মোডে। এটা কি সত্যি? সমস্ত সম্ভাব্য মান কি?
এখনও_ড্রিমিং_1

স্পষ্টতই ব্যাককম্পেটিভ হ'ল "quirks" / "সামঞ্জস্য" মোডের মানক মান। কেবলমাত্র দুটি মান রয়েছে: বিকাশকারী.মোজিলা.আর.ইন-
ইউএস

19

আপনি জাভাস্ক্রিপ্টে রেন্ডার মোডটিকে জিজ্ঞাসা করতে করতে আপনার একটি বুকমার্কলেট থাকতে পারে যা আপনাকে জানিয়ে দেবে যে কোনও পৃষ্ঠা কোন রেন্ডার মোডটি ব্যবহার করছে।

আমি এই রেন্ডার মোড বুকমার্কলেটটি পেয়েছি যা আমার পক্ষে ভাল কাজ করে:

javascript:m=(document.compatMode=='CSS1Compat')?'Standards':'Quirks';window.alert('You%20are%20in%20'%20+%20m%20+%20'%20mode.');

11

আপনার আসল সুনির্দিষ্ট প্রশ্নের পুরো উত্তর 'একটিমাত্র ত্রুটি এটি জোর করার পক্ষে যথেষ্ট বা আপনার কিছুটা অবকাশ আছে?' এটি সম্পূর্ণরূপে ত্রুটির উপর নির্ভর করে। উদাহরণ স্বরূপ,

<!-- Comment -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

সত্যই ত্রুটি না হওয়া সত্ত্বেও আইই 6 এবং 7-এ কুইর্কস মোডকে বাধ্য করবে (যখন ফাইলের প্রথম লাইনটি কোনও ডিক্লেয়ারেশন না হয় তখন তারা কেবল কৌতুকপূর্ণভাবে ছুঁড়ে দেয়)। প্রকারের / কিরকগুলির একটি দ্রুত তালিকা এখানে পাওয়া যাবে

পরীক্ষার জন্য আপনার এইচটিএমএলে নিম্নলিখিত লাইনটি আটকে রাখার চেষ্টা করুন (খুব খারাপ জাভাস্ক্রিপ্টের আচরণগতভাবে আমি এখানে যাচ্ছি - দুঃখিত ... নিশ্চিত হন যে এটি কখনই লাইভ হয় না :)

<a href="javascript:alert(document.compatMode);">What mode am I?</a>

জাভাস্ক্রিপ্ট পরীক্ষকটির জন্য ধন্যবাদ, কারণ আমার প্রথম দু'টি কুইর্কস মোডে কাজ করার চেষ্টা করে না escape
নওমেনন

css1compat! = quirks মোড?
মাইক কোল

4

Http://www.quirksmode.org/css/quirksmode.html এর মতে : "সমস্যাটি ছিল যে কুইর্কস মোডে লিখিত কিছু পৃষ্ঠাগুলির ডক্টাইপস ছিল Therefore তাই প্রতিটি ব্রাউজারের ডক্টিপিস সহ নিজস্ব তালিকা রয়েছে যা কুইর্কস মোডকে ট্রিগার করে this এই ব্রাউজারটি দেখুন এই তালিকাগুলির একটি সংক্ষিপ্তসার জন্য তুলনা চার্ট: http://hsivonen.iki.fi/doctype/ "

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


3

আপনি যদি আইই কে বলেন যে এটি কঠোর হওয়া উচিত (ডক্টাইপের মাধ্যমে) এটি পৃষ্ঠার মধ্য দিয়ে অর্ধেকভাবে তার মন পরিবর্তন করবে না।


2

যদি আমি কুইর্কস মোডটি সঠিকভাবে বুঝতে পারি তবে এমন একটি পৃষ্ঠা যা এর ঘোষিত ডক্টাইপের বিরুদ্ধে বৈধতা দেয় না তা কুইর্কস মোডকে ট্রিগার করতে যথেষ্ট নয়। এটি ঠিকভাবে প্রদর্শিত হবে না।

বিভিন্ন ব্রাউজারগুলি প্রতিটি ডক্টাইপকে এখানে কীভাবে পরিচালনা করে তা নির্ধারণের জন্য আমি যে সেরা উত্স খুঁজে পেয়েছি ।


2

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


2

আইই তে আপনি এটি বিকাশকারী সরঞ্জামগুলিতে দেখতে পাবেন (এফ 12 টিপুন), এটি মেনুতে এটি বলে: নথি মোড: ... এবং আপনি সেখানে আলাদা মোড জোর করতে পারেন।


এটি প্রশ্নের পয়েন্টটি মিস করে। এটি আপনাকে জাভাস্ক্রিপ্ট লিখতে সহায়তা করে না যা quirks মোডের জন্য একটি পথ এবং মান মোডের জন্য একটি পৃথক পথ কার্যকর করে।
জোয়েল কোহোর্ন

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

@ জোয়েলকোহুর্ন আসল সমস্যাটি হ'ল আপনি কখনই ব্যাখ্যা করেননি যে "তুলনামূলকভাবে কঠোর ডক্টাইপ" কী!
মিস্টার লিস্টার

0

এইচটিএমএল 5 পৃষ্ঠায়, " <!DOCTYPE html>" পৃষ্ঠার সাথে লেখার জন্য ডকুমেন্ট ডটকম পেটমোড = 'সিএসএস 1 কমপ্যাট' এ পরিবর্তন হতে পারে

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