অ্যালুমেন্ট মেটাতে এইচটিএমএস-সমতুল্য বৈশিষ্ট্যের জন্য খারাপ মান এক্স-ইউএ-সামঞ্জস্যপূর্ণ


110

metaএইচটিএমএল 5 বয়লারপ্লেটটি আমি একইভাবে ব্যবহার করেছি এবং ডাব্লু 3 সি এইচটিএমএল যাচাইকারীর অভিযোগ:

অ্যালুমেন্ট মেটাতে এইচটিএমএস-সমতুল্য বৈশিষ্ট্যের জন্য খারাপ মান এক্স-ইউএ-সামঞ্জস্যপূর্ণ।

<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>

এই metaট্যাগটি দিয়ে কী ভুল ?


6
এটি সম্পর্কে একটি দুর্দান্ত ব্লগ পোস্ট এখানে দেওয়া হয়েছে (এটি আমার প্রথম অনুসন্ধানের ফলাফলও ছিল): blog.yjl.im/2011/01/…
কম ফ্রি

উত্তর:


67

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

লেখার সময় (20130326) এক্স-ইউএ-সামঞ্জস্যপূর্ণ উইকি পাতায় একটি বিভাগের অধীনে উপস্থিত হয় যা বলে যে: "নিম্নলিখিত প্রস্তাবিত এক্সটেনশনগুলি এখনও এইচটিএমএল স্পেসে সমস্ত নিবন্ধকরণের প্রয়োজনীয়তা মেনে চলে না এবং তাই বৈধ হিসাবে এখনও অনুমোদিত হয় না are নথি। " সুতরাং মূল্যায়নকারী এই মান প্রত্যাখ্যান করতে সঠিক।


8
ভুল উইকি পৃষ্ঠা। আপনি যেটির সাথে লিঙ্ক করেছেন তার জন্য <meta name= ...। জন্য <meta http-equiv=...পাতা wiki.whatwg.org/wiki/PragmaExtensions
Alohci

6
সঠিক উইকির পৃষ্ঠায় রয়েছে X-UA-Compatible, তাই বিকল্পটি "বৈধকরণকারী আপ টু ডেট নয়" প্রয়োগ করে। এমনকি বৈধকরণকারী.নু (যা সাধারণভাবে বেশি আপ টু ডেট বলে জানা গেছে) এই ক্ষেত্রেও পুরানো।
Jukka K. Korpela

সংশোধনের জন্য ধন্যবাদ। আমি বুঝতে পারি নি যে মেটা বৈশিষ্ট্যের মানগুলি দুটি পৃষ্ঠায় বিভক্ত ছিল।
কোয়ান্টিন

1
সমর্থন করার জন্য কীভাবে বৈধকারীর প্যাচ করা যায় তার উদাহরণের জন্য আমার উত্তর দেখুন X-UA-Compatiblestackoverflow.com/a/21048010/1006963
darcyparker

তাহলে আমি কীভাবে ডাব্লু 3 সি ভ্যালিডেটর থেকে সমস্যাটি সমাধান করতে পারি..আমি কি ট্যাগটি সরিয়ে ফেলতে পারি?
ক্রিশ

42

যদি আপনি এটিকে প্রযুক্তিগতভাবে বৈধ করতে চাইছেন (প্রত্যেকে সবুজ ফ্যাভিকন দেখতে পছন্দ করে) ডাব্লু / ও যে কোনও কার্যকারিতা প্রভাবিত করে, আপনি কেবল "যদি আইই" ট্যাগে এটি মোড়ানো করতে সক্ষম হন।

<!--[if IE]><meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'><![endif]-->

22
এটি কার্যকরভাবে আপনার ক্রোম ফ্রেম সমর্থনটি অক্ষম করে কারণ ক্রোম ফ্রেম আইই শর্তযুক্ত মন্তব্যগুলিকে উপেক্ষা করে, জেফরিবার্ক.নেট
জ্যাস্পার মোয়েলকার

5
@ য্যাসপারমোকার: সম্ভবত আপনি যে নিবন্ধটি লিঙ্কটি সরবরাহ করেছেন সেটিতে ক্রোম ফ্রেমের জন্য একটি কার্যকারিতা রয়েছে যা চমত্কার:: বৈধকরণ + ক্রোম ফ্রেম সমর্থন!
লুক

5
না না না, এটি এক্স-ইউএ-সামঞ্জস্যপূর্ণ বিরতি। xn--MLform-iua.no/blog/…
ব্রেন্টনস্ট্রাইন

30

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

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

"ইন্টারনেট এক্সপ্লোরার যখন এই লাইনটি অতিক্রম করবে তখন এটি প্লাগইন ইনস্টল করা থাকলে প্রথম ক্রোম ফ্রেমের জন্য ব্যবহৃত ইঞ্জিনটি এবং তারপরে এজ (ব্রাউজারের সর্বাধিক সমর্থিত ডকুমেন্ট মোড) পরিবর্তন করবে।"

পদক্ষেপগুলি :

  • পৃষ্ঠার বৈধতা ঠিক করুন - এটি কেবল ট্যাগ মুছে ফেলার মাধ্যমে অর্জন করা হয়
  • রেন্ডারিং গতি - ব্রাউজারটি ট্যাগটি দেখার জন্য অপেক্ষা করার পরিবর্তে এবং তারপরে মোডগুলি পরিবর্তন করে আমরা একটি প্রতিক্রিয়া শিরোলেখ হিসাবে সঠিক মোডটি সামনে পাঠিয়ে দেব
  • নিশ্চিত হয়ে নিন যে আমরা কেবলমাত্র ইন্টারনেট এক্সপ্লোরারের জন্য সমাধানটি প্রদর্শন করেছি - আমরা কেবল কিছু সার্ভার সাইড ব্রাউজার সনাক্তকরণ ব্যবহার করব এবং কেবল এটি IE এ প্রেরণ করব

পিএইচপি-তে শিরোনাম যুক্ত করতে আমরা এটি কেবল আমাদের পৃষ্ঠায় যুক্ত করতে পারি:

if (isset($_SERVER['HTTP_USER_AGENT']) &&
    (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false))
        header('X-UA-Compatible: IE=edge,chrome=1');


অথবা আপনি এটিকে আপনার .htaccess ফাইলে যুক্ত করতে পারেন:

<FilesMatch "\.(htm|html|php)$">
    <IfModule mod_headers.c>
        BrowserMatch MSIE ie
        Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
    </IfModule>
</FilesMatch>


মূল নিবন্ধের লিঙ্ক, সম্ভাব্য সতর্কতামূলক জন্য মন্তব্য পরীক্ষা করুন। সি # এর জন্য একটি বাস্তবায়নও অন্তর্ভুক্ত।

একবারে এবং সকলের জন্য খারাপ মান এক্স-ইউএ-সামঞ্জস্য ঠিক করুন

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


1
এই লেখার সময়, এই সমাধানটি HTML5BP .htaccess ফাইলে প্রয়োগ করা হয়। সুতরাং, যদি আপনার অ্যাপাচি সার্ভারে মোডহেডার সক্ষম থাকে তবে আপনি <meta>এইচটিএমএল ফাইলটি সরিয়ে ফেলা নিরাপদ থাকবেন ।
প্যাট্রিক জেমস ম্যাকডোগল

আপনি যদি আমার মতো স্প্রিং এমভিসি ব্যবহার করেন তবে এটি করা এখনও সহজ। আপনি খুঁজছেন: response.addHeader("X-UA-Compatible", "IE=edge,chrome=1");তবে এখানে একটি সম্পূর্ণ গিথুব গিস্ট
পল নেলসন বেকার

1
@ পেট্রিকজেমস এমসিডুগল এটিকে কাজ করতে আমার অ্যাপাচি সার্ভারে মোড headersএবং setenvifমোড উভয়ই সক্ষম করতে হয়েছিল।
iglvzx

এটি যেখানে যুক্ত করা যায় তাতে কী আসে যায়? এটা কি প্রথম জিনিস হওয়া উচিত?
থাকুন

1
ডাব্লু 3 সি এইচটিএমএল বৈধতা প্রদানকারী maintain যদি আপনি "ক্রোম = 1" কে মান হিসাবে রাখেন তবে এই উত্তরের সমাধানটি আর কাজ করবে না, কারণ আমরা তখন থেকে (হেডা উপাদানটির চেক সহ) শিরোনামের জন্য একটি চেক যুক্ত করেছি এবং এইচটিএমএল স্পেস অনুসারে, উভয় জায়গায় (মেটা উপাদান বা শিরোনাম) একমাত্র অনুমোদিত মান হ'ল "আইই = এজ"।
sideshowbarker


2

.. এটি একটি ভাল উত্তর হতে পারে?

পিএইচপি দিয়ে HTTP শিরোনাম সেট করুন:

এটি আমার নিজের কাজ নয় তবে আমি আশা করি এটি অন্যদের পক্ষেও কার্যকর।


7
মনে রাখবেন যে লিঙ্ক-কেবল উত্তর নিরুৎসাহিত করা হয় (লিঙ্কগুলি সময়ের সাথে সাথে বাসি হয়ে যায়)। আপনার উত্তর সম্পাদনা এবং এখানে একটি সংক্ষিপ্ত যোগ করুন দয়া করে বিবেচনা করুন।
বমমি

1

আপনি যদি বৈধকারী এসসিআর কোডটি ডাউনলোড / বিল্ড করেন তবে আপনি নিজের সমর্থন যোগ করতে পারেন।

নিচের মতো কোনও ফাইলে যুক্ত করুন html5-meta-X-UA-Compatible.rnc) তারপরে এটি অন্তর্ভুক্ত করুন html5full.rnc

আমি এটি করেছি এবং এটি যাচাইয়ের জন্য দুর্দান্ত কাজ করে।

meta.http-equiv.X-UA-Compatible.elem =
  element meta { meta.inner & meta.http-equiv.X-UA-Compatible.attrs }
  meta.http-equiv.X-UA-Compatible.attrs =
    ( common.attrs.basic
      & common.attrs.i18n
      & common.attrs.present
      & common.attrs.other
      & meta.http-equiv.attrs.http-equiv.X-UA-Compatible
      & meta.http-equiv.attrs.content.X-UA-Compatible
      & ( common.attrs.aria.role.presentation
        | common.attrs.aria.role.menuitem
        )?
    )
    meta.http-equiv.attrs.http-equiv.X-UA-Compatible = attribute http-equiv {
      xsd:string {
        pattern = "X-UA-Compatible"
      }
    }
    meta.http-equiv.attrs.content.X-UA-Compatible = attribute content {
      xsd:string {
        pattern = "IE=((edge)|(EmulateIE(7|8|9|10))|7|8|9|10|11)(,chrome=(1|0))?"
      }
    }

common.elem.metadata |= meta.http-equiv.X-UA-Compatible.elem

0

দয়া করে ,chrome=1মেটা ট্যাগ থেকে অপসারণ এটি ঠিকঠাক কাজ করবে। বৈধকরণকারী সহ:

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

-1

আমার একই সমস্যা ছিল এবং যুক্ত করা এবং পুরো লাইনটি ঘিরে পরিস্থিতি প্রতিকার করে।

<!--[if IE]><meta http-equiv="x-ua-compatible" content="IE=9" /><![endif]-->

1
কেউ কি জানেন কেন ডাউনটিভেটেড হয়? এটি আসলে কার্যকরভাবে কার্যকরভাবে কাজ করে।
ম্যাকিয়েজ পাপ্রোকি

2
সম্ভবত কারণ এটি আসলে কিছুই অর্জন করে না। 1. শর্তাধীন মন্তব্যগুলি আইই 10 এবং তদূর্ধেরগুলিতে কাজ করে না। ২ এক্স-ইউএ-সামঞ্জস্যপূর্ণ নতুন ব্রাউজারগুলি পুরানোগুলি অনুকরণ করার জন্য। সুতরাং এই লাইনটি কার্যকরভাবে যা বলে তা হ'ল: 1. আইই 10 এবং 11, ডিফল্ট মোড ব্যবহার করে রেন্ডার করুন (যেহেতু তারা শর্তসাপেক্ষে মন্তব্যগুলি বিশ্লেষণ করে না) 2. আইই 9, আইই 9 হিসাবে রেন্ডার করুন (বেশিরভাগ ক্ষেত্রে এর ডিফল্ট মোড)। ৩. আইই <৯, ডিফল্ট মোড ব্যবহার করে রেন্ডার করুন (যেহেতু তারা কোনও ব্রাউজারকে তাদের চেয়ে নতুন যে অনুকরণ করতে পারে না)
আলেয়ার

আমি আরও যুক্ত করব যে এটি বৈধকরণকারীকে 'সঠিকভাবে' কাজ করে কারণ এটি একটি মন্তব্যের অভ্যন্তরে রয়েছে (সুতরাং বৈধকারক এটিকে উপেক্ষা করে)।
আলেয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.