Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

cleanued up and optimised

  • Loading branch information...
commit cb3dd930ca5b1fd9efe6d5f997bfda80e7d567e4 1 parent a3c492f
@n0s authored
Showing with 46 additions and 62 deletions.
  1. +34 −7 README
  2. +1 −1  index.html
  3. +11 −54 itunesdetect.js
View
41 README
@@ -1,10 +1,37 @@
+A Javascript tool detecting if iTunes is installed.
+Original methods from itunes.apple.com are used, and added support for iTunes detection in Opera for Windows. Code is cleanued up and optimised.
+
+Mini HOW-TO:
+Include itunesdetect.js on your page. Call the function _detect.iTunes(), returning true if iTunes is detected and false otherwise.
+
+For correct work in IE browsers, you must include the following object element on your page:
+<object classID="CLSID:D719897A-B07A-4C0C-AEA9-9B663A28DFCB" width="1" height="1" id="iTunesDetectorIE" ></object>
+
+
+Tested on:
+(Windows) Internet Explorer 6, 7, 8;
+(Windows/Mac OS) Google Chrome,
+(Windows/Mac OS) Mozila Firefox 3 >,
+(Windows/Mac OS) Opera.
+
+
+–––––––––––––––––––––––––––––––––
+
+
Javascript решение, определяющее, установлен ли iTunes на компьютере клиента.
+Здесь заимствованы оригинальные способы проверки с itunes.apple.com, добавлена поддержка проверки в браузерах Opera на ОС Windows, почищен и оптимизирован код.
+
+
+Маленький HOW-TO:
+Подгружаем на страницу скрипт itunesdetect.js. Вызываем функцию _detect.iTunes(), которая возвращает true в случае, если iTunes установлен, и, соответственно – false, если не установлен.
+
+Для проверок в IE браузерах, на странице должен присутствовать элемент object
+<object classID="CLSID:D719897A-B07A-4C0C-AEA9-9B663A28DFCB" width="1" height="1" id="iTunesDetectorIE" ></object>
+
-Работает в:
-Windows Internet Explorer 6, 7, 8 версиях;
-Windows/Mac OS Google Chrome,
-Windows/Mac OS Mozila Firefox 3 >,
-Mac OS Opera.
-Не работает:
-Windows Opera
+Работоспособность проверена в:
+(Windows) Internet Explorer 6, 7, 8 версиях;
+(Windows/Mac OS) Google Chrome,
+(Windows/Mac OS) Mozila Firefox 3 >,
+(Windows/Mac OS) Opera.
View
2  index.html
@@ -5,7 +5,7 @@
<script src="itunesdetect.js" type="text/javascript"></script>
<script>
window.onload = function (){
- document.getElementById('dd').innerHTML = 'dfdf '+ _detect.itunesDetected();
+ document.getElementById('dd').innerHTML = 'iTunes Installed? <font color="red">'+ _detect.iTunes() +'</font>';
}
</script>
</head>
View
65 itunesdetect.js
@@ -1,5 +1,6 @@
var _detect = {
- iTunesActiveXComponentInstalled: function() {
+ activeX: function(){
+ // проверяем наличие iTunes через ActiveX (актуально только для IE)
var b = document.getElementById("iTunesDetectorIE");
var a = false;
if ((b != null) && (typeof(b) != "undefined")) {
@@ -10,10 +11,10 @@ var _detect = {
a = false
}
}
- //console.log("IE ActiveXControl present: " + a);
return a
},
- iTunesMozillaPluginDetected: function () {
+ plugin: function(){
+ // проверяем наличие установки через navigator.plugins (актуально для всех браузеров, кроме IE)
var a = false;
if (navigator.plugins && navigator.plugins.length > 0) {
for (var b = 0; b < navigator.plugins.length; b++) {
@@ -24,59 +25,15 @@ var _detect = {
}
}
}
- //console.log("FF plugin detected: " + a);
return a
},
- itunesDetected: function() {
- return ((navigator.userAgent.indexOf("Macintosh") != -1) || (_detect.isIE() && _detect.iTunesActiveXComponentInstalled()) || (_detect.isSafari() && (window.location.href.indexOf("volume.itunes.apple.com") > -1)) || ((_detect.isFirefox() || _detect.isSafari() || _detect.isChrome()) && _detect.iTunesMozillaPluginDetected()))
- },
- initBrowserDetect: function () {
- if ((typeof(_detect.initBrowserDetect.browser) === "undefined") || !(_detect.initBrowserDetect.browser)) {
- var h = navigator;
- var a = h.userAgent;
- var f = h.appVersion;
- var d = parseFloat(f);
- var c = {};
- c.isOpera = (a.indexOf("Opera") >= 0) ? d : undefined;
- c.isKhtml = (f.indexOf("Konqueror") >= 0) ? d : undefined;
- c.isWebKit = parseFloat(a.split("WebKit/")[1]) || undefined;
- c.isChrome = parseFloat(a.split("Chrome/")[1]) || undefined;
- c.isFirefox = (/Firefox[\/\s](\d+\.\d+)/.test(a));
- var b = Math.max(f.indexOf("WebKit"), f.indexOf("Safari"), 0);
- if (b && !c.isChrome) {
- c.isSafari = parseFloat(f.split("Version/")[1]);
- if (!c.isSafari || parseFloat(f.substr(b + 7)) <= 419.3) {
- c.isSafari = 2
- }
- }
- _detect.initBrowserDetect.browser = c
- }
- return _detect.initBrowserDetect.browser
+ iTunes: function(){
+ return ((navigator.userAgent.indexOf("Macintosh") != -1) // если Macintosh – iTunes стоит
+ || (!_detect.isIE() && _detect.plugin()) // смотрим в navigator.plugins
+ || (_detect.isIE() && _detect.activeX()) // смотрим через ActiveX в IE
+ || false);
},
isIE: function() {
- with ( document.createElement("b") ) {
- id = 4;
- while(
- innerHTML = "<!--[if gt IE " + ++id + "]>1<![endif]-->",
- innerHTML > 0
- );
- var ie = id > 5 ? +id : 0
- }
- return ie
- },
- isOpera: function() {
- return _detect.initBrowserDetect().isOpera
- },
- isWebKit: function() {
- return _detect.initBrowserDetect().isWebKit
- },
- isChrome: function() {
- return _detect.initBrowserDetect().isChrome
- },
- isSafari: function() {
- return _detect.initBrowserDetect().isSafari
- },
- isFirefox: function() {
- return _detect.initBrowserDetect().isFirefox
+ return '\v' == 'v';
}
-};
+};
Please sign in to comment.
Something went wrong with that request. Please try again.