Skip to content
Permalink
Browse files
Traversing: Fix contents() on <object>s with children in IE
The original fix didn't account for the fact that in IE `<object>` elements
with no `data` attribute have an object `contentDocument`. The fix leverages
the fact that this special object has a null prototype.

(cherry-picked from ccbd6b9)

Closes gh-4390
Ref gh-4384
Ref gh-4385
  • Loading branch information
mgol committed May 8, 2019
1 parent 42badf3 commit 90f78b9aab9c99ff3ffcccb1db602670e9707fa0
Showing 1 changed file with 9 additions and 2 deletions.
@@ -1,5 +1,6 @@
define( [
"./core",
"./var/getProto",
"./var/indexOf",
"./traversing/var/dir",
"./traversing/var/siblings",
@@ -9,7 +10,7 @@ define( [
"./core/init",
"./traversing/findFilter",
"./selector"
], function( jQuery, indexOf, dir, siblings, rneedsContext, nodeName ) {
], function( jQuery, getProto, indexOf, dir, siblings, rneedsContext, nodeName ) {

"use strict";

@@ -145,7 +146,13 @@ jQuery.each( {
return siblings( elem.firstChild );
},
contents: function( elem ) {
if ( elem.contentDocument != null ) {
if ( elem.contentDocument != null &&

// Support: IE 11+
// <object> elements with no `data` attribute has an object
// `contentDocument` with a `null` prototype.
getProto( elem.contentDocument ) ) {

return elem.contentDocument;
}

0 comments on commit 90f78b9

Please sign in to comment.