From 39f40104f06cdcd9b8153b9fa4a32e5a7686bbb2 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Fri, 22 Mar 2013 18:53:24 +0100 Subject: Fix javascript error in IE9 when loading form with placeholders into an iframe (#1489008) --- program/js/common.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'program/js') diff --git a/program/js/common.js b/program/js/common.js index f9e945c05..7ad1891ec 100644 --- a/program/js/common.js +++ b/program/js/common.js @@ -720,10 +720,12 @@ jQuery.fn.placeholder = function(text) { var elem = $(this); this.title = text; + // Try HTML5 placeholder attribute first if ('placeholder' in this) { - elem.attr('placeholder', text); // Try HTML5 placeholder attribute first + elem.attr('placeholder', text); } - else { // Fallback to Javascript emulation of placeholder + // Fallback to Javascript emulation of placeholder + else { this._placeholder = text; elem.blur(function(e) { if ($.trim(elem.val()) == "") @@ -740,8 +742,13 @@ jQuery.fn.placeholder = function(text) { elem[(active ? 'addClass' : 'removeClass')]('placeholder').attr('spellcheck', active); }); - if (this != document.activeElement) // Do not blur currently focused element - elem.blur(); + // Do not blur currently focused element + // Catch "unspecified error" in IE9 (#1489008) + try { + if (this != document.activeElement) + elem.blur(); + } + catch(e) {} } }); }; -- cgit v1.2.3 From f38d15c700303b3d63e7ad1b06a418986ac815f9 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Fri, 22 Mar 2013 19:06:14 +0100 Subject: Better fix for IE9 issue with document.activeElement error (#1489008) --- program/js/app.js | 5 +++++ program/js/common.js | 8 ++------ 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'program/js') diff --git a/program/js/app.js b/program/js/app.js index 0f1a72448..d194b7326 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -178,6 +178,11 @@ function rcube_webmail() parent.rcmail.env.frame_lock = null; } + // Makes that reference to document.activeElement do not throw + // "unspecified error" in IE9 (#1489008) + if (this.env.framed && bw.ie) + document.documentElement.focus(); + // enable general commands this.enable_command('close', 'logout', 'mail', 'addressbook', 'settings', 'save-pref', 'compose', 'undo', 'about', 'switch-task', 'menu-open', 'menu-save', true); diff --git a/program/js/common.js b/program/js/common.js index 7ad1891ec..1075225b4 100644 --- a/program/js/common.js +++ b/program/js/common.js @@ -743,12 +743,8 @@ jQuery.fn.placeholder = function(text) { }); // Do not blur currently focused element - // Catch "unspecified error" in IE9 (#1489008) - try { - if (this != document.activeElement) - elem.blur(); - } - catch(e) {} + if (this != document.activeElement) + elem.blur(); } }); }; -- cgit v1.2.3