From 0307c964da40ac581eee8aaef6a559f05ab018b8 Mon Sep 17 00:00:00 2001 From: TJ VanToll Date: Wed, 28 Aug 2013 09:17:01 -0400 Subject: [PATCH] Draggable: Safe activeElement access from iFrames for IE9, prevent window focus changes in IE9+. Fixed #9520 - Draggable: Browser window drops behind other windows in IE9/10 --- ui/jquery.ui.draggable.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/ui/jquery.ui.draggable.js b/ui/jquery.ui.draggable.js index 2bdc2025538..95e4d47fd88 100644 --- a/ui/jquery.ui.draggable.js +++ b/ui/jquery.ui.draggable.js @@ -76,9 +76,19 @@ $.widget("ui.draggable", $.ui.mouse, { _mouseCapture: function(event) { - var o = this.options; - - $( document.activeElement ).blur(); + var document = this.document[ 0 ], + o = this.options; + + // support: IE9 + // IE9 throws an "Unspecified error" accessing document.activeElement from an iFrame + try { + // Support: IE9+ + // If the is blurred, IE will switch windows, see #9520 + if ( document.activeElement && document.activeElement.nodeName.toLowerCase() !== "body" ) { + // Blur any element that currently has focus, see #4261 + $( document.activeElement ).blur(); + } + } catch ( e ) {} // among others, prevent a drag on a resizable-handle if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) {