From fc286d16f99fc92bb021cfc4066ff0eef2b33ead Mon Sep 17 00:00:00 2001 From: Roman O Date: Tue, 26 Jun 2018 16:32:02 +0300 Subject: [PATCH] Add edge support --- CHANGELOG.md | 5 +++ README.md | 3 +- outdatedbrowser/outdatedbrowser.js | 59 +++++++++++++++++--------- outdatedbrowser/outdatedbrowser.min.js | 4 +- package.json | 2 +- 5 files changed, 48 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f79f47c..cb50d12 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Outdated Browser — Changelog +## v1.1.6 +Date: 2018-06-26 + + * Edge support + ## v1.1.3 Date: 2016-03-07 diff --git a/README.md b/README.md index 28f6fab..cdd0996 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Outdated Browser v1.1.3 +# Outdated Browser v1.1.6 ### A time saving tool for developers. It detects outdated browsers and advises users to upgrade to a new version. @@ -107,6 +107,7 @@ That's it! As simple as it can get. Lower Than (<): + * "Edge","js:Promise" * "IE11","borderImage" * "IE10", "transform" (Default property) * "IE9", "boxShadow" diff --git a/outdatedbrowser/outdatedbrowser.js b/outdatedbrowser/outdatedbrowser.js index 45db0d0..64feafd 100755 --- a/outdatedbrowser/outdatedbrowser.js +++ b/outdatedbrowser/outdatedbrowser.js @@ -1,6 +1,6 @@ /*!-------------------------------------------------------------------- JAVASCRIPT "Outdated Browser" -Version: 1.1.2 - 2015 +Version: 1.1.6 - 2018 author: Burocratik website: http://www.burocratik.com * @preserve @@ -19,7 +19,7 @@ var outdatedBrowser = function(options) { } if (options) { - //assign css3 property to IE browser version + //assign css3 property or js property to IE browser version if (options.lowerThan == 'IE8' || options.lowerThan == 'borderSpacing') { options.lowerThan = 'borderSpacing'; } else if (options.lowerThan == 'IE9' || options.lowerThan == 'boxShadow') { @@ -28,7 +28,10 @@ var outdatedBrowser = function(options) { options.lowerThan = 'transform'; } else if (options.lowerThan == 'IE11' || options.lowerThan == 'borderImage') { options.lowerThan = 'borderImage'; + } else if (options.lowerThan == 'Edge' || options.lowerThan == 'js:Promise') { + options.lowerThan = 'js:Promise'; } + //all properties this.defaultOpts.bgColor = options.bgColor; this.defaultOpts.color = options.color; @@ -99,22 +102,43 @@ var outdatedBrowser = function(options) { }; } )(); - //if browser does not supports css3 property (transform=default), if does > exit all this - if (!supports('' + cssProp + '')) { - if (done && outdated.style.opacity !== '1') { - done = false; - for (var i = 1; i <= 100; i++) { - setTimeout(( function(x) { - return function() { - function_fade_in(x); - }; - } )(i), i * 8); - } - } + var validBrowser = false; + + // browser check by js props + if(/^js:+/g.test(cssProp)) { + var jsProp = cssProp.split(':')[1]; + if(!jsProp) + return; + + switch (jsProp) { + case 'Promise': + validBrowser = window.Promise !== undefined && window.Promise !== null && Object.prototype.toString.call(window.Promise.resolve()) === '[object Promise]'; + break; + default: + validBrowser = false; + } } else { + // check by css3 property (transform=default) + validBrowser = supports('' + cssProp + ''); + } + + + if (!validBrowser) { + if (done && outdated.style.opacity !== '1') { + done = false; + for (var i = 1; i <= 100; i++) { + setTimeout((function (x) { + return function () { + function_fade_in(x); + }; + })(i), i * 8); + } + } + } else { return; } //end if + //Check AJAX Options: if languagePath == '' > use no Ajax way, html is needed inside
if (languagePath === ' ' || languagePath.length == 0) { startStylesAndEvents(); @@ -212,10 +236,3 @@ var outdatedBrowser = function(options) { ////////END of outdatedBrowser function }; - - - - - - - diff --git a/outdatedbrowser/outdatedbrowser.min.js b/outdatedbrowser/outdatedbrowser.min.js index 55ca0c6..061bbfb 100755 --- a/outdatedbrowser/outdatedbrowser.min.js +++ b/outdatedbrowser/outdatedbrowser.min.js @@ -1,8 +1,8 @@ /*!-------------------------------------------------------------------- JAVASCRIPT "Outdated Browser" -Version: 1.1.2 - 2015 +Version: 1.1.6 - 2018 author: Burocratik website: http://www.burocratik.com * @preserve -----------------------------------------------------------------------*/ -var outdatedBrowser=function(t){function o(t){s.style.opacity=t/100,s.style.filter="alpha(opacity="+t+")"}function e(t){o(t),1==t&&(s.style.display="block"),100==t&&(u=!0)}function r(){var t=document.getElementById("btnCloseUpdateBrowser"),o=document.getElementById("btnUpdateBrowser");s.style.backgroundColor=bkgColor,s.style.color=txtColor,s.children[0].style.color=txtColor,s.children[1].style.color=txtColor,o.style.color=txtColor,o.style.borderColor&&(o.style.borderColor=txtColor),t.style.color=txtColor,t.onmousedown=function(){return s.style.display="none",!1},o.onmouseover=function(){this.style.color=bkgColor,this.style.backgroundColor=txtColor},o.onmouseout=function(){this.style.color=txtColor,this.style.backgroundColor=bkgColor}}function l(){var t=!1;if(window.XMLHttpRequest)t=new XMLHttpRequest;else if(window.ActiveXObject)try{t=new ActiveXObject("Msxml2.XMLHTTP")}catch(o){try{t=new ActiveXObject("Microsoft.XMLHTTP")}catch(o){t=!1}}return t}function a(t){var o=l();return o&&(o.onreadystatechange=function(){n(o)},o.open("GET",t,!0),o.send(null)),!1}function n(t){var o=document.getElementById("outdated");return 4==t.readyState&&(o.innerHTML=200==t.status||304==t.status?t.responseText:d,r()),!1}var s=document.getElementById("outdated");this.defaultOpts={bgColor:"#f25648",color:"#ffffff",lowerThan:"transform",languagePath:"../outdatedbrowser/lang/en.html"},t?("IE8"==t.lowerThan||"borderSpacing"==t.lowerThan?t.lowerThan="borderSpacing":"IE9"==t.lowerThan||"boxShadow"==t.lowerThan?t.lowerThan="boxShadow":"IE10"==t.lowerThan||"transform"==t.lowerThan||""==t.lowerThan||"undefined"==typeof t.lowerThan?t.lowerThan="transform":("IE11"==t.lowerThan||"borderImage"==t.lowerThan)&&(t.lowerThan="borderImage"),this.defaultOpts.bgColor=t.bgColor,this.defaultOpts.color=t.color,this.defaultOpts.lowerThan=t.lowerThan,this.defaultOpts.languagePath=t.languagePath,bkgColor=this.defaultOpts.bgColor,txtColor=this.defaultOpts.color,cssProp=this.defaultOpts.lowerThan,languagePath=this.defaultOpts.languagePath):(bkgColor=this.defaultOpts.bgColor,txtColor=this.defaultOpts.color,cssProp=this.defaultOpts.lowerThan,languagePath=this.defaultOpts.languagePath);var u=!0,i=function(){var t=document.createElement("div"),o="Khtml Ms O Moz Webkit".split(" "),e=o.length;return function(r){if(r in t.style)return!0;for(r=r.replace(/^[a-z]/,function(t){return t.toUpperCase()});e--;)if(o[e]+r in t.style)return!0;return!1}}();if(!i(""+cssProp)){if(u&&"1"!==s.style.opacity){u=!1;for(var c=1;100>=c;c++)setTimeout(function(t){return function(){e(t)}}(c),8*c)}" "===languagePath||0==languagePath.length?r():a(languagePath);var d='
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×

'}}; \ No newline at end of file +var outdatedBrowser=function(t){var o=document.getElementById("outdated");this.defaultOpts={bgColor:"#f25648",color:"#ffffff",lowerThan:"transform",languagePath:"../outdatedbrowser/lang/en.html"},t?("IE8"==t.lowerThan||"borderSpacing"==t.lowerThan?t.lowerThan="borderSpacing":"IE9"==t.lowerThan||"boxShadow"==t.lowerThan?t.lowerThan="boxShadow":"IE10"==t.lowerThan||"transform"==t.lowerThan||""==t.lowerThan||void 0===t.lowerThan?t.lowerThan="transform":"IE11"==t.lowerThan||"borderImage"==t.lowerThan?t.lowerThan="borderImage":"Edge"!=t.lowerThan&&"js:Promise"!=t.lowerThan||(t.lowerThan="js:Promise"),this.defaultOpts.bgColor=t.bgColor,this.defaultOpts.color=t.color,this.defaultOpts.lowerThan=t.lowerThan,this.defaultOpts.languagePath=t.languagePath,bkgColor=this.defaultOpts.bgColor,txtColor=this.defaultOpts.color,cssProp=this.defaultOpts.lowerThan,languagePath=this.defaultOpts.languagePath):(bkgColor=this.defaultOpts.bgColor,txtColor=this.defaultOpts.color,cssProp=this.defaultOpts.lowerThan,languagePath=this.defaultOpts.languagePath);var e=!0;function r(t){!function(t){o.style.opacity=t/100,o.style.filter="alpha(opacity="+t+")"}(t),1==t&&(o.style.display="block"),100==t&&(e=!0)}var l,a,n,s=(l=document.createElement("div"),a="Khtml Ms O Moz Webkit".split(" "),n=a.length,function(t){if(t in l.style)return!0;for(t=t.replace(/^[a-z]/,function(t){return t.toUpperCase()});n--;)if(a[n]+t in l.style)return!0;return!1}),i=!1;if(/^js:+/g.test(cssProp)){var u=cssProp.split(":")[1];if(!u)return;switch(u){case"Promise":i=void 0!==window.Promise&&null!==window.Promise&&"[object Promise]"===Object.prototype.toString.call(window.Promise.resolve());break;default:i=!1}}else i=s(""+cssProp);if(!i){if(e&&"1"!==o.style.opacity){e=!1;for(var c=1;c<=100;c++)setTimeout(function(t){return function(){r(t)}}(c),8*c)}" "===languagePath||0==languagePath.length?h():function(t){var o=function(){var t=!1;if(window.XMLHttpRequest)t=new XMLHttpRequest;else if(window.ActiveXObject)try{t=new ActiveXObject("Msxml2.XMLHTTP")}catch(o){try{t=new ActiveXObject("Microsoft.XMLHTTP")}catch(o){t=!1}}return t}();o&&(o.onreadystatechange=function(){!function(t){var o=document.getElementById("outdated");4==t.readyState&&(200==t.status||304==t.status?o.innerHTML=t.responseText:o.innerHTML=d,h())}(o)},o.open("GET",t,!0),o.send(null))}(languagePath);var d='
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×

'}function h(){var t=document.getElementById("btnCloseUpdateBrowser"),e=document.getElementById("btnUpdateBrowser");o.style.backgroundColor=bkgColor,o.style.color=txtColor,o.children[0].style.color=txtColor,o.children[1].style.color=txtColor,e.style.color=txtColor,e.style.borderColor&&(e.style.borderColor=txtColor),t.style.color=txtColor,t.onmousedown=function(){return o.style.display="none",!1},e.onmouseover=function(){this.style.color=bkgColor,this.style.backgroundColor=txtColor},e.onmouseout=function(){this.style.color=txtColor,this.style.backgroundColor=bkgColor}}}; diff --git a/package.json b/package.json index 767782a..cce9f32 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "outdated-browser", - "version": "1.1.3", + "version": "1.1.6", "description": "A time saving tool for developers. It detects outdated browsers and advises users to upgrade to a new version.", "main": "outdatedbrowser/outdatedbrowser.js", "repository": {