আমার কাছে এফএফ, ক্রোম, আইই, অপেরা এবং সাফারির জন্য 5 টি অ্যাডোনস / এক্সটেনশন রয়েছে।
আমি কীভাবে ব্যবহারকারীর ব্রাউজারকে চিনতে পারি এবং সংশ্লিষ্ট অ্যাডনটি ডাউনলোড করতে (একবার ইনস্টল বোতামটি ক্লিক করা হয়ে থাকে) পুনর্নির্দেশ করতে পারি?
আমার কাছে এফএফ, ক্রোম, আইই, অপেরা এবং সাফারির জন্য 5 টি অ্যাডোনস / এক্সটেনশন রয়েছে।
আমি কীভাবে ব্যবহারকারীর ব্রাউজারকে চিনতে পারি এবং সংশ্লিষ্ট অ্যাডনটি ডাউনলোড করতে (একবার ইনস্টল বোতামটি ক্লিক করা হয়ে থাকে) পুনর্নির্দেশ করতে পারি?
উত্তর:
ব্রাউজারের নির্ভরযোগ্য সনাক্তকরণের জন্য গুগলিংয়ের ফলে প্রায়শই ব্যবহারকারী এজেন্ট স্ট্রিং চেক করা যায়। এই পদ্ধতিটি নির্ভরযোগ্য নয় , কারণ এই মানটির ছাঁটাই করা তুচ্ছ। হাঁস-টাইপ
করে ব্রাউজারগুলি সনাক্ত করার জন্য আমি একটি পদ্ধতি লিখেছি ।
ব্রাউজার সনাক্তকরণ পদ্ধতিটি যদি সত্যই প্রয়োজন হয় তবে এটি ব্যবহার করুন যেমন কোনও এক্সটেনশান ইনস্টল করতে ব্রাউজার-নির্দিষ্ট নির্দেশাবলী দেখানো। সম্ভব হলে বৈশিষ্ট্য সনাক্তকরণ ব্যবহার করুন।
ডেমো: https://jsfiddle.net/6spj1059/
// Opera 8.0+
var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
// Firefox 1.0+
var isFirefox = typeof InstallTrigger !== 'undefined';
// Safari 3.0+ "[object HTMLElementConstructor]"
var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && safari.pushNotification));
// Internet Explorer 6-11
var isIE = /*@cc_on!@*/false || !!document.documentMode;
// Edge 20+
var isEdge = !isIE && !!window.StyleMedia;
// Chrome 1 - 79
var isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);
// Edge (based on chromium) detection
var isEdgeChromium = isChrome && (navigator.userAgent.indexOf("Edg") != -1);
// Blink engine detection
var isBlink = (isChrome || isOpera) && !!window.CSS;
var output = 'Detecting browsers by ducktyping:<hr>';
output += 'isFirefox: ' + isFirefox + '<br>';
output += 'isChrome: ' + isChrome + '<br>';
output += 'isSafari: ' + isSafari + '<br>';
output += 'isOpera: ' + isOpera + '<br>';
output += 'isIE: ' + isIE + '<br>';
output += 'isEdge: ' + isEdge + '<br>';
output += 'isEdgeChromium: ' + isEdgeChromium + '<br>';
output += 'isBlink: ' + isBlink + '<br>';
document.body.innerHTML = output;
পূর্ববর্তী পদ্ধতি রেন্ডারিং ইঞ্জিন (বৈশিষ্ট্য উপর নির্ভরশীল -moz-box-sizing
এবং -webkit-transform
) ব্রাউজার সনাক্ত করতে। এই উপসর্গগুলি শেষ পর্যন্ত বাদ দেওয়া হবে, সুতরাং সনাক্তকরণটিকে আরও শক্তিশালী করতে আমি ব্রাউজার-নির্দিষ্ট বৈশিষ্ট্যগুলিতে স্যুইচ করেছি:
document.documentMode
।StyleMedia
নির্মাণকারীকে প্রকাশ করে । ট্রাইডেন্টকে বাদ দিয়ে এজ আমাদের ছেড়ে দেয়।InstallTrigger
chrome
অবজেক্ট, একটি ডকুমেন্টেড chrome.webstore
অবজেক্ট সহ বেশ কয়েকটি বৈশিষ্ট্যযুক্ত ।chrome.webstore
সাম্প্রতিক সংস্করণগুলিতে অবচয় এবং অপরিজ্ঞাতSafariRemoteNotification
3.0 এবং এর থেকে উপরে সমস্ত সাফারিগুলি কভার করতে সংস্করণ 7.1 এর পরে প্রবর্তিত হয়েছিল তার বিরুদ্ধে আমরা যাচাই করছি ।window.opera
কয়েক বছর ধরে অস্তিত্ব রয়েছে, তবে অপেরা যখন ইঞ্জিনটি ব্লিঙ্ক + ভি 8 (ক্রোমিয়াম দ্বারা ব্যবহৃত) এর সাথে প্রতিস্থাপন করবে তখন তা ফেলে দেওয়া হবে । chrome
অবজেক্টটি সংজ্ঞায়িত করা হয়েছে (তবে chrome.webstore
তা নয়)। যেহেতু অপেরা ক্রোম ক্লোন করার জন্য কঠোর চেষ্টা করে, তাই আমি এজেন্টের জন্য এজেন্ট স্নিফিং ব্যবহার করি।!!window.opr && opr.addons
সনাক্ত করতে ব্যবহার করা যেতে পারে ।CSS.supports()
ব্লিঙ্কে চালু হয়েছিল It's এটি অবশ্যই অপেরাতে একই ব্লিঙ্ক ব্যবহৃত হয়েছিল।9.1.3 এবং উপরের দিকে সাফারি ব্রাউজারগুলির সনাক্তকরণ অন্তর্ভুক্ত করতে নভেম্বর 2016 এ আপডেট হয়েছে
ক্রোম, ফায়ারফক্স আইই এবং প্রান্তের সর্বশেষতম সফল পরীক্ষাগুলি আপডেট করতে আগস্ট 2018 এ আপডেট হয়েছে Updated
ক্রোম সনাক্তকরণ ঠিক করার জন্য জানুয়ারী 2019 এ আপডেট হয়েছে (উইন্ডো। ক্রোম.বিস্টোর অবমূল্যায়নের কারণে) এবং ক্রোমের সর্বশেষতম সফল পরীক্ষাগুলি অন্তর্ভুক্ত করেছে।
ক্রোমিয়াম সনাক্তকরণের উপর ভিত্তি করে এজ যোগ করতে 2019 এর ডিসেম্বরে আপডেট হয়েছে (@ নিমেশ মন্তব্যের ভিত্তিতে)।
window.chrome.webstore
সেখানে সংজ্ঞায়িত। ফায়ারফক্স এক্সটেনশনগুলির সাহায্যে এটি পরীক্ষা করা হয়নি। is.js
উল্লিখিত অন্যত্র ক্রোম এবং ফায়ারফক্স এক্সটেনশন উভয় ক্ষেত্রেই কাজ করে।
isSafari
সাফারি ১০ এর সাথে কাজ করে না। আমি যুক্তি দিতে যাচ্ছি এটি একটি খারাপ সমাধান (এমন নয় যে আমার ভাল সমাধান হয়েছে)। আপনার চেক করা জিনিসগুলির অনেকগুলি অপসারণ করা হবে না বা অন্য ব্রাউজারগুলি যোগ করা হবে না এর কোনও গ্যারান্টি নেই। সাফারি চেক করার জন্য এই কোডটি ব্যবহার করা প্রতিটি সাইট
isSafari
অধীনে কাজ করে না <iframe>
সাফারি 10.1.2 অধীনে
আপনি ব্রাউজার সংস্করণ চেক করার জন্য নিম্নলিখিত উপায় চেষ্টা করতে পারেন।
<!DOCTYPE html>
<html>
<body>
<p>What is the name(s) of your browser?</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
if((navigator.userAgent.indexOf("Opera") || navigator.userAgent.indexOf('OPR')) != -1 )
{
alert('Opera');
}
else if(navigator.userAgent.indexOf("Chrome") != -1 )
{
alert('Chrome');
}
else if(navigator.userAgent.indexOf("Safari") != -1)
{
alert('Safari');
}
else if(navigator.userAgent.indexOf("Firefox") != -1 )
{
alert('Firefox');
}
else if((navigator.userAgent.indexOf("MSIE") != -1 ) || (!!document.documentMode == true )) //IF IE > 10
{
alert('IE');
}
else
{
alert('unknown');
}
}
</script>
</body>
</html>
এবং যদি আপনার কেবলমাত্র আইই ব্রাউজার সংস্করণটি জানতে হয় তবে আপনি নীচের কোডটি অনুসরণ করতে পারেন। এই কোডটি IE6 থেকে IE11 সংস্করণে ভাল কাজ করে
<!DOCTYPE html>
<html>
<body>
<p>Click on Try button to check IE Browser version.</p>
<button onclick="getInternetExplorerVersion()">Try it</button>
<p id="demo"></p>
<script>
function getInternetExplorerVersion() {
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
var rv = -1;
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // If Internet Explorer, return version number
{
if (isNaN(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))))) {
//For IE 11 >
if (navigator.appName == 'Netscape') {
var ua = navigator.userAgent;
var re = new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null) {
rv = parseFloat(RegExp.$1);
alert(rv);
}
}
else {
alert('otherbrowser');
}
}
else {
//For < IE11
alert(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))));
}
return false;
}}
</script>
</body>
</html>
chrome
ইউজারজেন্টে কীওয়ার্ড থাকবে না । সাফারি ইউজারেজেন্টের উদাহরণ -mozilla/5.0 (macintosh; intel mac os x 10_11_5) applewebkit/601.6.17 (khtml, like gecko) version/9.1.1 safari/601.6.17
if(navigator.userAgent.indexOf("Opera") != -1 || navigator.userAgent.indexOf('OPR') != -1 )
আমি জানি যে এটির জন্য একটি lib ব্যবহার করা অতিরিক্ত পরিমাণে হতে পারে তবে কেবল থ্রেডকে সমৃদ্ধ করার জন্য আপনি is.js এর কাজ করার উপায়টি পরীক্ষা করতে পারেন :
is.firefox();
is.ie(6);
is.not.safari();
is.js
এবং তারা কীভাবে তা পরীক্ষা করে দেখুন।
এখানে বেশ কয়েকটি বিশিষ্ট গ্রন্থাগার রয়েছে যা 2019 সালের ডিসেম্বর পর্যন্ত ব্রাউজার সনাক্তকরণ পরিচালনা করে।
var result = bowser.getParser(window.navigator.userAgent);
console.log(result);
document.write("You are using " + result.parsedResult.browser.name +
" v" + result.parsedResult.browser.version +
" on " + result.parsedResult.os.name);
<script src="https://unpkg.com/bowser@2.7.0/es5.js"></script>
* ক্রোমিয়ামের উপর ভিত্তি করে এজ সমর্থন করে
console.log(platform);
document.write("You are using " + platform.name +
" v" + platform.version +
" on " + platform.os);
<script src="https://cdnjs.cloudflare.com/ajax/libs/platform/1.3.5/platform.min.js"></script>
console.log($.browser)
document.write("You are using " + $.browser.name +
" v" + $.browser.versionNumber +
" on " + $.browser.platform);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-browser/0.1.0/jquery.browser.min.js"></script>
var result = detect.parse(navigator.userAgent);
console.log(result);
document.write("You are using " + result.browser.family +
" v" + result.browser.version +
" on " + result.os.family);
<script src="https://cdnjs.cloudflare.com/ajax/libs/Detect.js/2.2.2/detect.min.js"></script>
console.log(BrowserDetect)
document.write("You are using " + BrowserDetect.browser +
" v" + BrowserDetect.version +
" on " + BrowserDetect.OS);
<script src="https://kylemit.github.io/libraries/libraries/BrowserDetect.js"></script>
যদি কেউ এটির কাজে লাগে তবে আমি রব ডাব্লু এর উত্তরটিকে এমন একটি ফাংশনে পরিণত করেছি যা একাধিক ভেরিয়েবল ভাসমানের পরিবর্তে ব্রাউজারের স্ট্রিংকে ফিরিয়ে দেয়। যেহেতু ব্রাউজারটি আবারও সমস্ত লোড না করে সত্যিই পরিবর্তন করতে পারে না, তাই পরবর্তী সময়ে ফাংশনটি বলার পরে এটিকে কাজ করার প্রয়োজন থেকে বাঁচানোর জন্য আমি ফলাফলটিকে ক্যাশে করে ফেলেছি।
/**
* Gets the browser name or returns an empty string if unknown.
* This function also caches the result to provide for any
* future calls this function has.
*
* @returns {string}
*/
var browser = function() {
// Return cached result if avalible, else get result then cache it.
if (browser.prototype._cachedResult)
return browser.prototype._cachedResult;
// Opera 8.0+
var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
// Firefox 1.0+
var isFirefox = typeof InstallTrigger !== 'undefined';
// Safari 3.0+ "[object HTMLElementConstructor]"
var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || safari.pushNotification);
// Internet Explorer 6-11
var isIE = /*@cc_on!@*/false || !!document.documentMode;
// Edge 20+
var isEdge = !isIE && !!window.StyleMedia;
// Chrome 1+
var isChrome = !!window.chrome && !!window.chrome.webstore;
// Blink engine detection
var isBlink = (isChrome || isOpera) && !!window.CSS;
return browser.prototype._cachedResult =
isOpera ? 'Opera' :
isFirefox ? 'Firefox' :
isSafari ? 'Safari' :
isChrome ? 'Chrome' :
isIE ? 'IE' :
isEdge ? 'Edge' :
isBlink ? 'Blink' :
"Don't know";
};
console.log(browser());
window.chrome.webstore
ক্রোম 71 এ সম্পত্তি মুছে ফেলা হয়েছে, সুতরাং এই পদ্ধতিটি আর কাজ করছে না।
সংক্ষিপ্ত রূপ
var browser = (function() {
var test = function(regexp) {
return regexp.test(window.navigator.userAgent);
}
switch (true) {
case test(/edg/i): return "edge";
case test(/opr/i) && (!!window.opr || !!window.opera): return "opera";
case test(/chrome/i) && !!window.chrome: return "chrome";
case test(/trident/i): return "ie";
case test(/firefox/i): return "firefox";
case test(/safari/i): return "safari";
default: return "other";
}
})();
console.log(browser)
মাইক্রোসফ্ট এজ এবং ব্লিঙ্ক সনাক্তকরণ সহ রবের জবাবের একটি 2016 সমন্বিত সংস্করণ এখানে রয়েছে:
( সম্পাদনা করুন : আমি এই তথ্য দিয়ে রবের উত্তর উপরে আপডেট করেছি))
// Opera 8.0+ (UA detection to detect Blink/v8-powered Opera)
isOpera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
// Firefox 1.0+
isFirefox = typeof InstallTrigger !== 'undefined';
// Safari 3.0+
isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || safari.pushNotification);
// Internet Explorer 6-11
isIE = /*@cc_on!@*/false || !!document.documentMode;
// Edge 20+
isEdge = !isIE && !!window.StyleMedia;
// Chrome 1+
isChrome = !!window.chrome && !!window.chrome.webstore;
// Blink engine detection
isBlink = (isChrome || isOpera) && !!window.CSS;
/* Results: */
console.log("isOpera", isOpera);
console.log("isFirefox", isFirefox);
console.log("isSafari", isSafari);
console.log("isIE", isIE);
console.log("isEdge", isEdge);
console.log("isChrome", isChrome);
console.log("isBlink", isBlink);
এই পদ্ধতির সৌন্দর্যটি হ'ল এটি ব্রাউজার ইঞ্জিনের বৈশিষ্ট্যগুলির উপর নির্ভর করে, তাই এটি ইয়ানডেক্স বা ভিভালদি এর মতো এমনকি ডেরাইভেটিভ ব্রাউজারগুলিকেও কভার করে, যা প্রধানত ব্রাউজারগুলির সাথে ব্যবহার করে যা তাদের ইঞ্জিনগুলি ব্যবহার করে compatible ব্যতিক্রম অপেরা, যা ব্যবহারকারী এজেন্ট স্নিফিংয়ের উপর নির্ভর করে তবে আজ (অর্থাত্ ভার্চু 15 এবং উপরে) এমনকি অপেরা নিজেও ব্লিঙ্কের জন্য কেবল একটি শেল।
!!window.MSAssertion;
পরীক্ষা রিমোট ডেস্কটপ মাধ্যমে এজ বিটা আমার জন্য কাজ করে না। এটি মিথ্যা প্রত্যাবর্তন।
MSAssertion
কৌশলটি 25 সংস্করণে সামঞ্জস্য হয়েছে But ভাল কল. ধন্যবাদ।
StyleMedia
(মূলধন) বস্তু অর্থাৎ এজ নির্দিষ্ট এবং যেকোনো জায়গায় যাচ্ছে বলে মনে হচ্ছে না।
আপনি বিভিন্ন ব্রাউজার ত্রুটি বার্তা ব্যবহার করতে try
এবং ব্যবহার করতে পারেন catch
। আই এবং এজটি মিশ্রিত হয়েছিল, তবে আমি রব ডাব্লু থেকে হাঁসের টাইপিং ব্যবহার করেছি (এই প্রকল্পের উপর ভিত্তি করে এখানে: https://www.khanacademy.org/computer-programming/i-have-opera/2395080328 )।
var getBrowser = function() {
try {
var e;
var f = e.width;
} catch(e) {
var err = e.toString();
if(err.indexOf("not an object") !== -1) {
return "safari";
} else if(err.indexOf("Cannot read") !== -1) {
return "chrome";
} else if(err.indexOf("e is undefined") !== -1) {
return "firefox";
} else if(err.indexOf("Unable to get property 'width' of undefined or null reference") !== -1) {
if(!(false || !!document.documentMode) && !!window.StyleMedia) {
return "edge";
} else {
return "IE";
}
} else if(err.indexOf("cannot convert e into object") !== -1) {
return "opera";
} else {
return undefined;
}
}
};
আপনি সবাই ধন্যবাদ. আমি সাম্প্রতিক ব্রাউজারগুলিতে কোড স্নিপেটগুলি এখানে পরীক্ষা করেছি: ক্রোম 55, ফায়ারফক্স 50, আইই 11 এবং এজ 38 এবং আমি নিম্নলিখিত সংমিশ্রণটি নিয়ে এসেছি যা তাদের সকলের জন্য আমার পক্ষে কাজ করেছে। আমি নিশ্চিত এটির উন্নতি হতে পারে তবে এটি যার প্রয়োজন তার পক্ষে এটি দ্রুত সমাধান:
var browser_name = '';
isIE = /*@cc_on!@*/false || !!document.documentMode;
isEdge = !isIE && !!window.StyleMedia;
if(navigator.userAgent.indexOf("Chrome") != -1 && !isEdge)
{
browser_name = 'chrome';
}
else if(navigator.userAgent.indexOf("Safari") != -1 && !isEdge)
{
browser_name = 'safari';
}
else if(navigator.userAgent.indexOf("Firefox") != -1 )
{
browser_name = 'firefox';
}
else if((navigator.userAgent.indexOf("MSIE") != -1 ) || (!!document.documentMode == true )) //IF IE > 10
{
browser_name = 'ie';
}
else if(isEdge)
{
browser_name = 'edge';
}
else
{
browser_name = 'other-browser';
}
$('html').addClass(browser_name);
এটি ব্রাউজারের নাম সহ এইচটিএমএলে একটি সিএসএস ক্লাস যুক্ত করে।
কারও পক্ষে এটি দরকারী কিনা ধারণা নেই তবে এখানে টাইপস্ক্রিপ্টকে খুশি করার জন্য একটি বৈকল্পিক।
export function getBrowser() {
// Opera 8.0+
if ((!!window["opr"] && !!["opr"]["addons"]) || !!window["opera"] || navigator.userAgent.indexOf(' OPR/') >= 0) {
return 'opera';
}
// Firefox 1.0+
if (typeof window["InstallTrigger"] !== 'undefined') {
return 'firefox';
}
// Safari 3.0+ "[object HTMLElementConstructor]"
if (/constructor/i.test(window["HTMLElement"]) || (function(p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof window["safari"] !== 'undefined' && window["safari"].pushNotification))) {
return 'safari';
}
// Internet Explorer 6-11
if (/*@cc_on!@*/false || !!document["documentMode"]) {
return 'ie';
}
// Edge 20+
if (!(/*@cc_on!@*/false || !!document["documentMode"]) && !!window["StyleMedia"]) {
return 'edge';
}
// Chrome 1+
if (!!window["chrome"] && !!window["chrome"].webstore) {
return 'chrome';
}
// Blink engine detection
if (((!!window["chrome"] && !!window["chrome"].webstore) || ((!!window["opr"] && !!["opr"]["addons"]) || !!window["opera"] || navigator.userAgent.indexOf(' OPR/') >= 0)) && !!window["CSS"]) {
return 'blink';
}
}
ডেস্কটপ এবং মোবাইলে ব্রাউজারগুলি সনাক্ত করা: এজ, অপেরা, ক্রোম, সাফারি, ফায়ারফক্স, আইই
আমি @ নিমেষ কোডে কিছু পরিবর্তন করেছি এখন এটি এজের জন্যও কাজ করছে এবং অপেরা ইস্যুটি স্থির হয়েছে:
function getBrowserName() {
if ( navigator.userAgent.indexOf("Edge") > -1 && navigator.appVersion.indexOf('Edge') > -1 ) {
return 'Edge';
}
else if( navigator.userAgent.indexOf("Opera") != -1 || navigator.userAgent.indexOf('OPR') != -1 )
{
return 'Opera';
}
else if( navigator.userAgent.indexOf("Chrome") != -1 )
{
return 'Chrome';
}
else if( navigator.userAgent.indexOf("Safari") != -1)
{
return 'Safari';
}
else if( navigator.userAgent.indexOf("Firefox") != -1 )
{
return 'Firefox';
}
else if( ( navigator.userAgent.indexOf("MSIE") != -1 ) || (!!document.documentMode == true ) ) //IF IE > 10
{
return 'IE';
}
else
{
return 'unknown';
}
}
ধন্যবাদ @ নিমেষ ব্যবহারকারী: 2063564
একটি কম "হ্যাকি" পদ্ধতিও রয়েছে যা সমস্ত জনপ্রিয় ব্রাউজারগুলির জন্য কাজ করে। গুগল তাদের বন্ধ লাইব্রেরিতে একটি ব্রাউজার-চেক অন্তর্ভুক্ত করেছে । বিশেষত, দেখুন goog.userAgent
এবং goog.userAgent.product
। এইভাবে, ব্রাউজারগুলি যেভাবে উপস্থাপিত হয় তাতে কিছু পরিবর্তন হয় (আপনি সর্বদা ক্লোজার সংকলনের সর্বশেষতম সংস্করণটি চালান given
আপনার যদি কিছু নির্দিষ্ট ব্রাউজারের সংখ্যাসূচক সংস্করণটি জানতে হয় তবে আপনি নীচের স্নিপেটটি ব্যবহার করতে পারেন। বর্তমানে এটি আপনাকে ক্রোম / ক্রোমিয়াম / ফায়ারফক্সের সংস্করণটি বলবে:
var match = $window.navigator.userAgent.match(/(?:Chrom(?:e|ium)|Firefox)\/([0-9]+)\./);
var ver = match ? parseInt(match[1], 10) : 0;
ইউআরপার্সার ইউজার এজেন্ট স্ট্রিং থেকে ব্রাউজার, ইঞ্জিন, ওএস, সিপিইউ এবং ডিভাইসের ধরণ / মডেল সনাক্ত করতে লাইটওয়েট জাভাস্ক্রিপ্ট লাইব্রেরির অন্যতম।
একটি সিডিএন রয়েছে। এখানে আমি ইউএপারসার ব্যবহার করে ব্রাউজার সনাক্ত করার জন্য একটি উদাহরণ কোড অন্তর্ভুক্ত করেছি।
<!doctype html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/ua-parser-js@0/dist/ua-parser.min.js"></script>
<script type="text/javascript">
var parser = new UAParser();
var result = parser.getResult();
console.log(result.browser); // {name: "Chromium", version: "15.0.874.106"}
</script>
</head>
<body>
</body>
</html>
এখন আপনি result.browser
শর্তসাপেক্ষে আপনার পৃষ্ঠায় প্রোগ্রাম করার মানটি ব্যবহার করতে পারেন ।
উত্স টিউটোরিয়াল: জাভাস্ক্রিপ্ট ব্যবহার করে কীভাবে ব্রাউজার, ইঞ্জিন, ওএস, সিপিইউ এবং ডিভাইস সনাক্ত করা যায়?
var BrowserDetect = {
init: function () {
this.browser = this.searchString(this.dataBrowser) || "Other";
this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "Unknown";
},
searchString: function (data) {
for (var i = 0; i < data.length; i++) {
var dataString = data[i].string;
this.versionSearchString = data[i].subString;
if (dataString.indexOf(data[i].subString) !== -1) {
return data[i].identity;
}
}
},
searchVersion: function (dataString) {
var index = dataString.indexOf(this.versionSearchString);
if (index === -1) {
return;
}
var rv = dataString.indexOf("rv:");
if (this.versionSearchString === "Trident" && rv !== -1) {
return parseFloat(dataString.substring(rv + 3));
} else {
return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
}
},
dataBrowser: [
{string: navigator.userAgent, subString: "Edge", identity: "MS Edge"},
{string: navigator.userAgent, subString: "MSIE", identity: "Explorer"},
{string: navigator.userAgent, subString: "Trident", identity: "Explorer"},
{string: navigator.userAgent, subString: "Firefox", identity: "Firefox"},
{string: navigator.userAgent, subString: "Opera", identity: "Opera"},
{string: navigator.userAgent, subString: "OPR", identity: "Opera"},
{string: navigator.userAgent, subString: "Chrome", identity: "Chrome"},
{string: navigator.userAgent, subString: "Safari", identity: "Safari"}
]
};
BrowserDetect.init();
var bv= BrowserDetect.browser;
if( bv == "Chrome"){
$("body").addClass("chrome");
}
else if(bv == "MS Edge"){
$("body").addClass("edge");
}
else if(bv == "Explorer"){
$("body").addClass("ie");
}
else if(bv == "Firefox"){
$("body").addClass("Firefox");
}
$(".relative").click(function(){
$(".oc").toggle('slide', { direction: 'left', mode: 'show' }, 500);
$(".oc1").css({
'width' : '100%',
'margin-left' : '0px',
});
});
এটি রবের মূল উত্তর এবং 2016 এর জন্য পিলাউয়ের আপডেট উভয়কেই একত্রিত করে
var isOpera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
// Opera 8.0+ (UA detection to detect Blink/v8-powered Opera)
var isFirefox = typeof InstallTrigger !== 'undefined'; // Firefox 1.0+
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
// At least Safari 3+: "[object HTMLElementConstructor]"
var isChrome = !!window.chrome && !isOpera; // Chrome 1+
var isIE = /*@cc_on!@*/false || !!document.documentMode;
// Edge 20+
var isEdge = !isIE && !!window.StyleMedia;
// Chrome 1+
var output = 'Detecting browsers by ducktyping:<hr>';
output += 'isFirefox: ' + isFirefox + '<br>';
output += 'isChrome: ' + isChrome + '<br>';
output += 'isSafari: ' + isSafari + '<br>';
output += 'isOpera: ' + isOpera + '<br>';
output += 'isIE: ' + isIE + '<br>';
output += 'isIE Edge: ' + isEdge + '<br>';
document.body.innerHTML = output;
এটি আপনি কোন ব্রাউজারটি চলছে তা সন্ধান করুন।
function isValidBrowser(navigator){
var isChrome = navigator.indexOf('chrome'),
isFireFox= navigator.indexOf('firefox'),
isIE = navigator.indexOf('trident') ,
isValidChromeVer = parseInt(navigator.substring(isChrome+7, isChrome+8)) >= 4,
isValidFireForVer = parseInt(navigator.substring(isFireFox+8, isFireFox+9)) >= 3,
isValidIEVer = parseInt(navigator.substring(isIE+8, isIE+9)) >= 7;
if((isChrome > -1 && isValidChromeVer){ console.log("Chrome Browser")}
if(isFireFox > -1 && isValidFireForVer){ console.log("FireFox Browser")}
if(isIE > -1 && isValidIEVer)){ console.log("IE Browser")}
}
আমরা নীচে ব্যবহার পদ্ধতি ব্যবহার করতে পারেন
utils.isIE = function () {
var ver = navigator.userAgent;
return ver.indexOf("MSIE") !== -1 || ver.indexOf("Trident") !== -1; // need to check for Trident for IE11
};
utils.isIE32 = function () {
return (utils.isIE() && navigator.appVersion.indexOf('Win64') === -1);
};
utils.isChrome = function () {
return (window.chrome);
};
utils.isFF64 = function () {
var agent = navigator.userAgent;
return (agent.indexOf('Win64') >= 0 && agent.indexOf('Firefox') >= 0);
};
utils.isFirefox = function () {
return (navigator.userAgent.toLowerCase().indexOf('firefox') > -1);
};
const isChrome = /Chrome/.test(navigator.userAgent)
const isFirefox = /Firefox/.test(navigator.userAgent)
জাভাস্ক্রিপ্ট কোডের সরল, একক লাইন আপনাকে ব্রাউজারের নাম দেবে:
function GetBrowser()
{
return navigator ? navigator.userAgent.toLowerCase() : "other";
}
navigator.userAgent
আপনার সম্ভাব্য প্রতিটি ব্রাউজারকে বলে দেয় .. সুতরাং এটি সত্যিই নির্ভরযোগ্য নয়, কেবলমাত্র যদি ব্যবহারকারীর কেবল একটি ব্রাউজার থাকে তবে এটি কাজ করবে।