From 9eaefefe664ee78bc4efb3cbc7077de45c825295 Mon Sep 17 00:00:00 2001 From: Nathan Moinvaziri Date: Mon, 22 Oct 2018 12:02:43 -0700 Subject: [PATCH 1/2] Fixed bug in IE 9 with rv undefined reference. Added parsing for version number using IE trident user agent. --- jquery.flot.axislabels.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/jquery.flot.axislabels.js b/jquery.flot.axislabels.js index c4b3bca..e719f33 100644 --- a/jquery.flot.axislabels.js +++ b/jquery.flot.axislabels.js @@ -385,7 +385,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. navigator.appName == 'Microsoft Internet Explorer') { var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); - if (re.exec(ua) != null) { + var rv = null; + var rer = re.exec(ua); + if (rer == null) { + re = new RegExp("Trident\/[0-9+].[0-9+]; rv:[0-9]{1,}[\.0-9]{0,}"); + rer = re.exec(ua); + } + if (rer != null) { rv = parseFloat(RegExp.$1); } if (rv >= 9 && !opts.axisLabelUseCanvas && !opts.axisLabelUseHtml) { From d72586d0324ac6d54faf081b365e5eb65000e42a Mon Sep 17 00:00:00 2001 From: Nathan Moinvaziri Date: Tue, 8 Jan 2019 10:42:02 -0800 Subject: [PATCH 2/2] Better method for detecting IE9 with trident. --- jquery.flot.axislabels.js | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/jquery.flot.axislabels.js b/jquery.flot.axislabels.js index e719f33..3e1fdd9 100644 --- a/jquery.flot.axislabels.js +++ b/jquery.flot.axislabels.js @@ -384,17 +384,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. if (!opts.axisLabelUseHtml && navigator.appName == 'Microsoft Internet Explorer') { var ua = navigator.userAgent; - var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); - var rv = null; + // https://stackoverflow.com/questions/29296524/regex-to-detect-ie-5-6-7-and-8-but-no-others/ + var re = new RegExp("^.*MSIE [5-8](?:\.[0-9]+)?(?!.*Trident\/[5-9]\.0).*$"); var rer = re.exec(ua); - if (rer == null) { - re = new RegExp("Trident\/[0-9+].[0-9+]; rv:[0-9]{1,}[\.0-9]{0,}"); - rer = re.exec(ua); - } - if (rer != null) { - rv = parseFloat(RegExp.$1); - } - if (rv >= 9 && !opts.axisLabelUseCanvas && !opts.axisLabelUseHtml) { + if (rer == null && !opts.axisLabelUseCanvas && !opts.axisLabelUseHtml) { renderer = CssTransformAxisLabel; } else if (!opts.axisLabelUseCanvas && !opts.axisLabelUseHtml) { renderer = IeTransformAxisLabel;