41 lines
984 B
JavaScript
41 lines
984 B
JavaScript
|
( function( factory ) {
|
||
|
if ( typeof define === "function" && define.amd ) {
|
||
|
|
||
|
// AMD. Register as an anonymous module.
|
||
|
define( [ "jquery", "./version" ], factory );
|
||
|
} else {
|
||
|
|
||
|
// Browser globals
|
||
|
factory( jQuery );
|
||
|
}
|
||
|
} ( function( $ ) {
|
||
|
return $.ui.safeActiveElement = function( document ) {
|
||
|
var activeElement;
|
||
|
|
||
|
// Support: IE 9 only
|
||
|
// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
|
||
|
try {
|
||
|
activeElement = document.activeElement;
|
||
|
} catch ( error ) {
|
||
|
activeElement = document.body;
|
||
|
}
|
||
|
|
||
|
// Support: IE 9 - 11 only
|
||
|
// IE may return null instead of an element
|
||
|
// Interestingly, this only seems to occur when NOT in an iframe
|
||
|
if ( !activeElement ) {
|
||
|
activeElement = document.body;
|
||
|
}
|
||
|
|
||
|
// Support: IE 11 only
|
||
|
// IE11 returns a seemingly empty object in some cases when accessing
|
||
|
// document.activeElement from an <iframe>
|
||
|
if ( !activeElement.nodeName ) {
|
||
|
activeElement = document.body;
|
||
|
}
|
||
|
|
||
|
return activeElement;
|
||
|
};
|
||
|
|
||
|
} ) );
|