জাভাস্ক্রিপ্ট বা jQuery সহ ম্যাক ওএস এক্স বা উইন্ডোজ কম্পিউটারগুলি সনাক্ত করার সেরা উপায়


109

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


20
ব্যবহারকারী যদি ব্যবহারকারীকে হেরফের করে, তবে তা কি তার সমস্যা নয়? আমি এটা সম্পর্কে চিন্তা যখন এটি ব্যাথা চাই আপনি তাদের জন্য একটি অবৈধ useragent আছে (যেমন যখন এটি কোন কিছু যা আপনি তাদের আছে চাই না তাদের অ্যাক্সেস দেয়), কিন্তু ভালো কিছু জন্য, কেন তুমি জোর করা হয়? তাদের নিজের পায়ে গুলি করতে দিন এবং পরিণতিগুলি মোকাবেলা করতে হবে - আপনার পিছনে, সাথীকে ঘাম না।
মাহমুদ আল-কুদসি

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

@ মাহমুদআল-কুদসি এমনকি কোনও ছদ্মবেশ ছাড়াই, মোবাইল ফায়ারফক্স প্রায়শই এটি সাফারি করে দেখায়, অপেরা প্রায়শই কিছু সংস্করণে এটি ফায়ারফক্সের ভান করে। স্পষ্ট না করে ব্যবহারকারী এজেন্ট এখনও খুব বেশি বিশ্বাসযোগ্য নয়।
Alt

সম্ভাব্য সদৃশ: স্ট্যাকওভারফ্লো.
com/q/7044944

তবে এই প্রশ্নের উত্তরটি কেবলমাত্র "ব্যবহারকারী এজেন্ট"।
Alt

উত্তর:


191

Window.navigator.platform সম্পত্তি প্রতারণামূলক নয় যখন userAgent স্ট্রিং পরিবর্তিত হয়। আমি আমার ম্যাকটিতে পরীক্ষা করেছি যদি আমি ব্যবহারকারী এজেন্টকে আইফোন বা ক্রোম উইন্ডোতে পরিবর্তন করি, নেভিগেটর.প্ল্যাটফর্মটি ম্যাকআইন্টেল থেকে যায়।

নেভিগেটর.প্ল্যাটফর্মটি স্পুফ করা হয় না যখন ইউজার এজেন্ট স্ট্রিং পরিবর্তন করা হয়

সম্পত্তিটি কেবল পঠনযোগ্য

নেভিগেটর.প্ল্যাটফর্মটি কেবল পঠনযোগ্য


আমি নিম্নলিখিত টেবিল নিয়ে আসতে পারে

ম্যাক কম্পিউটার

Mac68K ম্যাকিনটোস 68 কে সিস্টেম।
MacPPC ম্যাকিনটোস পাওয়ারপিসি সিস্টেম।
MacIntel ম্যাকিনটোস ইন্টেল সিস্টেম।

আইওএস ডিভাইস

iPhone আইফোন।
iPod আইপড টাচ.
iPad আইপ্যাড।


আধুনিক ম্যাকস ফিরে আসে navigator.platform == "MacIntel"তবে কিছু "ভবিষ্যতের প্রমাণ" দেওয়ার জন্য সঠিক মিল খুঁজে পাওয়া যায় না, আশা করি তারা ভবিষ্যতে MacARMবা MacQuantumএর মতো কিছুতে পরিবর্তিত হবে ।

var isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0;

আইওএস অন্তর্ভুক্ত করতে যা "বাম পাশ" ব্যবহার করে

var isMacLike = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);
var isIOS = /(iPhone|iPod|iPad)/i.test(navigator.platform);


যেহেতু বেশিরভাগ ওএস ডানদিকে ক্লোজ বোতামটি ব্যবহার করে, ব্যবহারকারী যখন ম্যাকলাইক ওএসে থাকে তখন আপনি কেবল বাম দিকে ঘনিষ্ঠ বোতামটি সরাতে পারেন, অন্যথায় যদি আপনি এটি একেবারে সাধারণ দিকে রাখেন তবে সমস্যা নয় a

setTimeout(test, 1000); //delay for demonstration

function test() {

  var mac = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);

  if (mac) {
    document.getElementById('close').classList.add("left");
  }
}
#window {
  position: absolute;
  margin: 1em;
  width: 300px;
  padding: 10px;
  border: 1px solid gray;
  background-color: #DDD;
  text-align: center;
  box-shadow: 0px 1px 3px #000;
}
#close {
  position: absolute;
  top: 0px;
  right: 0px;
  width: 22px;
  height: 22px;
  margin: -12px;
  box-shadow: 0px 1px 3px #000;
  background-color: #000;
  border: 2px solid #FFF;
  border-radius: 22px;
  color: #FFF;
  text-align: center;
  font: 14px"Comic Sans MS", Monaco;
}
#close.left{
  left: 0px;
}
<div id="window">
  <div id="close">x</div>
  <p>Hello!</p>
  <p>If the "close button" change to the left side</p>
  <p>you're on a Mac like system!</p>
</div>

http://www.nczonline.net/blog/2007/12/17/don-t-forget-navigator-platform/


3
@ ভিটিম.ইউস বিস্তারিত উত্তরের জন্য আপনাকে অনেক ধন্যবাদ, আপনি আমার দিনটি সত্যিই বাঁচিয়েছেন :)
বিবেককূপাধ্যায়

7
এটি হ্রাস করা হয় না। বিকাশকারী.মোজিলা.আর.ইন-
ইউএস

1
ম্যাককুয়ান্টাম আমার দিন তৈরি করেছে। 😂
orhor Mé

প্ল্যাটফর্মের সম্পত্তি কেবল পঠনযোগ্য, তবে এটির ফাঁকি দেওয়া
রায়ান বার্বিজ

1
@Qix একটি আরো উন্নত উন্নতি প্রতিস্থাপন করতে হবে str.match(regexp) ? true : falseসঙ্গে regexp.test(string)RegExp.prototype.test()পদ্ধতি স্থানীয়ভাবে একটি বুলিয়ান ফেরৎ। সুতরাং, আমার পছন্দসই কোড হয় const platformIsMacLike = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);
ররি ও'কেনে

51

এটা ঐটার মতই সহজ:

function isMacintosh() {
  return navigator.platform.indexOf('Mac') > -1
}

function isWindows() {
  return navigator.platform.indexOf('Win') > -1
}

আপনি মজার জিনিস করতে পারেন তবে পছন্দ করুন:

var isMac = isMacintosh();
var isPC = !isMacintosh();

1
ভাল, যে দুটি অপারেটিং সিস্টেম কভার । এখানে একটি আরো ব্যাপক (কিন্তু সম্ভবত এখনও অসম্পূর্ণ) তালিকা, যা লিনাক্স, বাসদ, অ্যান্ড্রয়েড, পাম, সোনি Playstations, অন্তর্ভুক্ত করে ইত্যাদি .: stackoverflow.com/questions/19877924/...
মাইকেল Scheper

আপনি যদি আরও অপারেটিং সিস্টেমগুলি কভার করতে চান, তবে আপনার যেমন লাইব্রেরির জন্য যেতে হবে Platform.js: github.com/bestiejs/platform.js
বেনি

@ বেনিনিউজবাউরের isPCসমান হওয়া উচিত নয় !isMacintosh();। যদি ব্যবহারকারী লিনাক্স বা অন্য কোনও প্ল্যাটফর্মে থাকে? এটি সনাক্ত করবে যে তারা ম্যাকে নেই এবং ভাববে যে তারা পিসিতে রয়েছে।
রহস্যময়

@ এটার্নাল ডার্কনেসএই কারণেই আমি এটিকে ডাকলাম isPC(এবং না isWindowsবা isLinuxকারণ) লিনাক্স পিসিগুলিতে চলে তবে ম্যাকোস কেবল ম্যাকগুলিতে চলে।
বেনি নিউজবাউয়ার

5

আপনি যেটা খুঁজছিলেন এটাই কি সেটা? অন্যথায়, আমাকে জানান এবং আমি এই পোস্টটি সরিয়ে দেব।

এই jQuery প্লাগইনটি ব্যবহার করে দেখুন: http://archive.plugins.jquery.com/project/client-detect

ডেমো: http://www.stoime.com/jquery.client.plugin/

এটি quirksmode ব্রাউজার উপর ভিত্তি করে jQuery ব্রাউজার / ওএস সনাক্তকরণ প্লাগইন জন্য একটি মোড়ানো সনাক্ত।

আগ্রহী পাঠকদের জন্য:
http://www.stoament.com/blog/2009/07/16/jquery-browser-and-os-detection-plugin/
http://www.quirksmode.org/js/support.html

এবং প্লাগইন প্রায় আরো কোড এখানে বাসভবন: http://www.stoimen.com/jquery.client.plugin/jquery.client.js


2
শহরবাসী! আমি আমার ব্যবহারকারীর এজেন্টকে ছদ্মবেশ দিয়েছি এবং এটি এখনও ম্যাকের জন্য সাফারিতে সনাক্ত করেছে! ধন্যবাদ BRUV।
Alt

1
@ জ্যাকসনগ্রিটিটি কোনও উদ্বেগজনক নয় :) :) বিস্তারিত পড়ুন এখানে পুরো কোডটি রিসাইন্ডিং রয়েছে :) স্টিমিন. com/ jquery.client.plugin/jquery.client.js একটি সুন্দর ব্রোসনিয়াক আছে :) চিয়ার্স!
টাটস_নিট

@ ডেরেক হাইয়া ব্রুভ - এটি কোয়ার্কমোড ব্রাউজার প্লাগইন ব্যবহার করে এবং ব্রাউজারের জন্য সনাক্ত করে / ওএস এখানে quirksmode.org/js/detect.html দেখুন এবং আরও স্টিওমেন / জেকারি। /js/support.html আশা করি এটি বোধগম্য হবে :)
Tats_innit

কোনও বিষয় নয়, এটি কেবল ব্যবহারকারীর এজেন্ট ব্যবহার করছে বলে মনে হচ্ছে ... সেই ধরণের সফলতা রয়েছে ks
Alt

1
আসলে আমি উত্তরটি খুঁজছি না really এটা কি সম্ভব?
Alt

0

যদি এটি কাজ করে তবে আমাকে জানান। স্ট্যাকওভারফ্লো ডটকমের সহায়তায় একটি অ্যাপল ডিভাইস (ম্যাক কম্পিউটার, আইফোন, ইত্যাদি) সনাক্ত করার উপায় :
আজকের হিসাবে নেভিগেটর.প্ল্যাটফর্মের জন্য সম্ভাব্য মানগুলির তালিকা কী?

var deviceDetect = navigator.platform;
var appleDevicesArr = ['MacIntel', 'MacPPC', 'Mac68K', 'Macintosh', 'iPhone', 
'iPod', 'iPad', 'iPhone Simulator', 'iPod Simulator', 'iPad Simulator', 'Pike 
v7.6 release 92', 'Pike v7.8 release 517'];

// If on Apple device
if(appleDevicesArr.includes(deviceDetect)) {
    // Execute code
}
// If NOT on Apple device
else {
    // Execute code
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.