ব্রাউজারটি আছে কিনা তা যাচাই করতে আমার বুলিয়ান মান ফিরিয়ে দেওয়ার জন্য কিছু ফাংশন প্রয়োজন ক্রোম ।
আমি কীভাবে এই জাতীয় কার্যকারিতা তৈরি করব?
ব্রাউজারটি আছে কিনা তা যাচাই করতে আমার বুলিয়ান মান ফিরিয়ে দেওয়ার জন্য কিছু ফাংশন প্রয়োজন ক্রোম ।
আমি কীভাবে এই জাতীয় কার্যকারিতা তৈরি করব?
উত্তর:
আপডেট: এটি পরিচালনা করার জন্য দয়া করে জোনাথনের উত্তর দেখুন । নীচের উত্তরটি এখনও কাজ করতে পারে তবে এটি সম্ভবত অন্যান্য ব্রাউজারগুলিতে কিছু মিথ্যা ইতিবাচক কারণকে উদ্বুদ্ধ করতে পারে।
var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
তবে উল্লিখিত ব্যবহারকারীর এজেন্টদের ছদ্মবেশী করা যায় তাই এই উত্তরগুলি যেমন উত্তর হিসাবে উল্লিখিত হয় তেমন বৈশিষ্ট্য-সনাক্তকরণ (যেমন মডার্নাইজার ) ব্যবহার করা সর্বদা সেরা ।
var is_chrome = ((navigator.userAgent.toLowerCase().indexOf('chrome') > -1) &&(navigator.vendor.toLowerCase().indexOf("google") > -1));
Google Inc
আসে navigator.vendor
, সুতরাং এই পদ্ধতিটি বুলেটপ্রুফ নয়, এর মতো কিছু /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor) && !/OPR/.test(navigator.userAgent)
সম্ভবত আরও ভাল কাজ করবে
ব্রাউজারটি গুগল ক্রোম কিনা তা পরীক্ষা করতে এটি ব্যবহার করে দেখুন:
// please note,
// that IE11 now returns undefined again for window.chrome
// and new Opera 30 outputs true for window.chrome
// but needs to check if window.opr is not undefined
// and new IE Edge outputs to true now for window.chrome
// and if not iOS Chrome check
// so use the below updated condition
var isChromium = window.chrome;
var winNav = window.navigator;
var vendorName = winNav.vendor;
var isOpera = typeof window.opr !== "undefined";
var isIEedge = winNav.userAgent.indexOf("Edge") > -1;
var isIOSChrome = winNav.userAgent.match("CriOS");
if (isIOSChrome) {
// is Google Chrome on IOS
} else if(
isChromium !== null &&
typeof isChromium !== "undefined" &&
vendorName === "Google Inc." &&
isOpera === false &&
isIEedge === false
) {
// is Google Chrome
} else {
// not Google Chrome
}
ব্যবহারের উদাহরণ: http://codepen.io/jonathan/pen/WpQELR
এটি কাজ করার কারণ হ'ল যদি আপনি গুগল ক্রোম পরিদর্শক ব্যবহার করেন এবং কনসোল ট্যাবে যান। 'উইন্ডো' টাইপ করুন এবং এন্টার টিপুন। তারপরে আপনি 'উইন্ডো অবজেক্ট' এর জন্য DOM বৈশিষ্ট্যগুলি দেখতে সক্ষম হবেন। আপনি যখন বস্তুটি ভেঙে ফেলেন তখন আপনি 'ক্রোম' সম্পত্তি সহ সমস্ত বৈশিষ্ট্য দেখতে পাবেন।
আপনি IE এর জন্য চেক করতে কঠোরভাবে আর সমান সমান ব্যবহার করতে পারবেন না window.chrome
। আইই ফিরে আসত undefined
, এখন ফিরে আসবে true
। তবে কী অনুমান করুন, আইই 11 এখন আবার অপরিবর্তিত ফেরত দেয়। আইই 11 এছাড়াও একটি খালি স্ট্রিং দেয়""
জন্য প্রদান করে window.navigator.vendor
।
আশা করি এটা কাজে লাগবে!
হালনাগাদ:
নীচের দিকে ইঙ্গিত করার জন্য হ্যালসিওন৯৯১-কে আপনাকে ধন্যবাদ , যে নতুন অপেরা ১৮ ++ এর ক্ষেত্রেও সত্য ঘটেছে window.chrome
। দেখে মনে হচ্ছে অপেরা 18 ক্রোমিয়াম 31 এর উপর ভিত্তি করে । সুতরাং আমি তা নিশ্চিত করতে একটি চেক যুক্ত করেছি window.navigator.vendor
: "Google Inc"
এবং তা নেই "Opera Software ASA"
। রিং এবং অ্যাড্রিন বি এর জন্য ক্রোম 33 সম্পর্কে আর মাথা না ফেরার জন্য ধন্যবাদ, সত্যটি আর ফিরে আসেনি ... window.chrome
এখন শূন্য নয় কিনা তা পরীক্ষা করে দেখুন। তবে আইই ১১-এর দিকে মনোযোগ দিন, আমি undefined
আইই ১১ এর পর থেকে চেক ব্যাকটি যুক্ত করেছি undefined
, যেমনটি প্রথম প্রকাশের সময় যেমন হয়েছিল ... তারপরে কিছু আপডেট পরে true
এটি আউটপুট তৈরি হয় .. এখনকার আপডেট আপডেটটি আউটপুট করছেundefined
হয়ে আবার । মাইক্রোসফ্ট মন তৈরি করতে পারে না!
আপডেট 7/24/2015 - অপেরা চেক জন্য সংযোজন
অপেরা 30 সবে মুক্তি পেয়েছে। এটি আর আউটপুট window.opera
। এবং এছাড়াও window.chrome
নতুন অপেরা 30. সুতরাং সত্যতে আউটপুট যদি আপনি চেক করতে হবে OPR হয় userAgent । অপেরা 30-এ এই নতুন পরিবর্তনের জন্য আমি আমার শর্তটি আপডেট করেছি, কারণ এটি গুগল ক্রোমের মতো একই রেন্ডার ইঞ্জিন ব্যবহার করে।
আপডেট 10/13/2015 - আইই চেক এর জন্য সংযোজন
কারণে এটা outputting অর্থাৎ এজ জন্য চেক যোগ করা হয়েছে true
জন্য window.chrome
যদিও IE11 আউটপুট .. undefined
জন্য window.chrome
। এই সম্পর্কে আমাদের জানানোর জন্য artfulhacker ধন্যবাদ !
আপডেট 2/5/2016 - আইওএস ক্রোম চেক জন্য সংযোজন
আইওএসে ক্রোমের জন্য CriOS
আউটপুট করার কারণে আইওএস ক্রোম চেকের জন্য চেক যুক্ত করা হয়েছে true
। অষ্টম ধন্যবাদএই সম্পর্কে আমাদের !
হালনাগাদ 4/18/2018 - অপেরা চেকের জন্য পরিবর্তন করুন
অপেরা জন্য সম্পাদিত চেক পরীক্ষণ window.opr
নয় undefined
যেহেতু এখন Chrome 66 হয়েছে OPR
মধ্যে window.navigator.vendor
। ফ্রস্টি জেড এবং ড্যানিয়েল ওয়ালম্যানকে এই প্রতিবেদন করার জন্য ধন্যবাদ !
Mozilla/5.0 (Linux; Android 8.0.0; ASUS_Z012D Build/OPR1.170623.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.109 Mobile Safari/537.36
সুতরাং মিথ্যাisChrome()
প্রত্যাবর্তন ।
window.opr
না undefined
।
এমনকি আরও ছোট: var is_chrome = /chrome/i.test( navigator.userAgent );
true
মাইক্রোসফ্ট এজ এ ফিরে আসুন ।
আরও সহজ সমাধানটি কেবল ব্যবহারের জন্য:
var isChrome = !!window.chrome;
!!
শুধু একটি বুলিয়ান মান বস্তু পরিবর্তন করে। নন-ক্রোম ব্রাউজারগুলিতে, এই সম্পত্তিটি হবে undefined
, যা সত্য নয়।
নোট করুন এটি ক্রমের উপর ভিত্তি করে এজগুলির সংস্করণগুলির ক্ষেত্রেও সত্য ফিরে আসে (এটি নির্দেশ করার জন্য @ ক্যারাম ধন্যবাদ)।
true
আসে window.chrome
। কন্ডিশিজr.com দেখুন যা বুলেটপ্রুফ সনাক্তকরণ + ঠিক আছে।
!!
মানকে হয় true
বা রূপান্তর করে false
। typeof(window.chrome)
দেয় "object"
, যেখানে typeof(!!window.chrome)
দেয় "boolean"
। আপনার কোডের নমুনাটিও খুব কার্যকর হয় কারণ if
বিবৃতিটি রূপান্তর করে।
true
এজের জন্যও ফিরে আসে ।
console.log(JSON.stringify({
isAndroid: /Android/.test(navigator.userAgent),
isCordova: !!window.cordova,
isEdge: /Edge/.test(navigator.userAgent),
isFirefox: /Firefox/.test(navigator.userAgent),
isChrome: /Google Inc/.test(navigator.vendor),
isChromeIOS: /CriOS/.test(navigator.userAgent),
isChromiumBased: !!window.chrome && !/Edge/.test(navigator.userAgent),
isIE: /Trident/.test(navigator.userAgent),
isIOS: /(iPhone|iPad|iPod)/.test(navigator.platform),
isOpera: /OPR/.test(navigator.userAgent),
isSafari: /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent),
isTouchScreen: ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch,
isWebComponentsSupported: 'registerElement' in document && 'import' in document.createElement('link') && 'content' in document.createElement('template')
}, null, ' '));
var is_chrome = /chrome/.test( navigator.userAgent.toLowerCase() );
true
মাইক্রোসফট এজ হবে।
আপনি ক্রোমের নির্দিষ্ট সংস্করণটিও পেতে পারেন:
var ua = navigator.userAgent;
if(/chrome/i.test(ua)) {
var uaArray = ua.split(' ')
, version = uaArray[uaArray.length - 2].substr(7);
}
আমার মধ্যে তাঁর উত্তরটি ব্যবহার করার জন্য দ্য বিগ লেবোভস্কির কাছে ক্ষমাপ্রার্থী।
"537.36"
মাইক্রোসফ্ট এজতে রয়েছে।
তুমি ব্যবহার করতে পার:
navigator.userAgent.indexOf("Chrome") != -1
এটি v.71 এ কাজ করছে
navigator.userAgent.includes("Chrome")
ম্যাকের ক্রোমে আমার জন্য কাজ করে। উপরের তুলনায় সবচেয়ে সহজ বা সহজ বা আরও নির্ভরযোগ্য (ইউজার এজেন্ট স্ট্রিং পরীক্ষিত ক্ষেত্রে) মনে হচ্ছে।
var isChrome = false;
if (window.chrome && !window.opr){
isChrome = true;
}
console.log(isChrome);
const isChrome = window.chrome && !window.opr;
ব্যবহারকারী ব্যবহারকারী এজেন্ট পরিবর্তন করতে পারে। উপাদানটির অবজেক্টে webkit
উপসর্গযুক্ত সম্পত্তি পরীক্ষা করার চেষ্টা করুনstyle
body
if ("webkitAppearance" in document.body.style) {
// do stuff
}
এটি দেখুন: সাফারি, ক্রোম, আইই, ফায়ারফক্স এবং অপেরা ব্রাউজার কীভাবে সনাক্ত করবেন?
আপনার ক্ষেত্রে: var isChrome = !! window.chrome && (!! window.chrome.webstore || !! window.chrome.runtime);
বিভিন্ন ডেস্কটপ ব্রাউজারগুলির নাম জানতে (ফায়ারফক্স, আইই, অপেরা, এজ, ক্রোম)। সাফারি বাদে।
function getBrowserName() {
var browserName = '';
var userAgent = navigator.userAgent;
(typeof InstallTrigger !== 'undefined') && (browserName = 'Firefox');
( /* @cc_on!@*/ false || !!document.documentMode) && (browserName = 'IE');
(!!window.chrome && userAgent.match(/OPR/)) && (browserName = 'Opera');
(!!window.chrome && userAgent.match(/Edge/)) && (browserName = 'Edge');
(!!window.chrome && !userAgent.match(/(OPR|Edge)/)) && (browserName = 'Chrome');
/**
* Expected returns
* Firefox, Opera, Edge, Chrome
*/
return browserName;
}
নিম্নলিখিত ব্রাউজার সংস্করণে কাজ করে:
Opera - 58.0.3135.79
Firefox - 65.0.2 (64-bit)
IE - 11.413.15063 (JS Fiddle no longer supports IE just paste in Console)
Edge - 44.17763.1.0
Chrome - 72.0.3626.121 (Official Build) (64-bit)
সারকথা দেখুন এখানে এবং বেহালার এখানে
মূল কোড স্নিপেট আর Chrome এর জন্য কাজ করে না এবং আমি এটি কোথায় পেয়েছি তা ভুলে গিয়েছিলাম। এর আগে সাফারি ছিল তবে আমার আর সাফারি অ্যাক্সেস নেই তাই আমি আর যাচাই করতে পারি না।
শুধুমাত্র ফায়ারফক্স এবং আইই কোডগুলি মূল স্নিপেটের অংশ ছিল।
অপেরা, এজ এবং ক্রোমের জন্য চেক করা সরাসরি এগিয়ে রয়েছে। ইউজার এজেন্টে তাদের পার্থক্য রয়েছে। OPR
কেবল অপেরাতে বিদ্যমান।Edge
শুধুমাত্র এজ এ বিদ্যমান। তাই ক্রোমের জন্য যাচাই করার জন্য এই স্ট্রিংটি থাকা উচিত নয়।
ফায়ারফক্স এবং আইই হিসাবে, তারা কী করে তা আমি ব্যাখ্যা করতে পারি না।
সমস্ত উত্তর ভুল। "অপেরা" এবং "ক্রোম" সমস্ত ক্ষেত্রে একই।
(সম্পাদিত অংশ)
এখানে সঠিক উত্তর
if (window.chrome && window.chrome.webstore) {
// this is Chrome
}
window.chrome.webstore
এখনundefined