Commit 649823de authored by timmywil's avatar timmywil

Fixes a fail in unit/traversing. Use an iframe's document for creating the...

Fixes a fail in unit/traversing. Use an iframe's document for creating the html5 fragment when necessary.
parent 51fd4593
...@@ -22,22 +22,7 @@ var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, ...@@ -22,22 +22,7 @@ var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
area: [ 1, "<map>", "</map>" ], area: [ 1, "<map>", "</map>" ],
_default: [ 0, "", "" ] _default: [ 0, "", "" ]
}, },
safeFragment = (function() { safeFragment = createSafeFragment( document );
var nodeNames = (
"abbr article aside audio canvas datalist details figcaption figure footer " +
"header hgroup mark meter nav output progress section summary time video"
).split( " " ),
safeFrag = document.createDocumentFragment();
if ( safeFrag.createElement ) {
while ( nodeNames.length ) {
safeFrag.createElement(
nodeNames.pop()
);
}
}
return safeFrag;
})();
wrapMap.optgroup = wrapMap.option; wrapMap.optgroup = wrapMap.option;
wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
...@@ -643,7 +628,13 @@ jQuery.extend({ ...@@ -643,7 +628,13 @@ jQuery.extend({
div = context.createElement("div"); div = context.createElement("div");
// Append wrapper element to unknown element safe doc fragment // Append wrapper element to unknown element safe doc fragment
safeFragment.appendChild( div ); if ( context === document ) {
// Use the fragment we've already created for this document
safeFragment.appendChild( div );
} else {
// Use a fragment created with the owner document
createSafeFragment( context ).appendChild( div );
}
// Go to html and back, then peel off extra wrappers // Go to html and back, then peel off extra wrappers
div.innerHTML = wrap[1] + elem + wrap[2]; div.innerHTML = wrap[1] + elem + wrap[2];
...@@ -786,4 +777,21 @@ function evalScript( i, elem ) { ...@@ -786,4 +777,21 @@ function evalScript( i, elem ) {
} }
} }
function createSafeFragment( document ) {
var nodeNames = (
"abbr article aside audio canvas datalist details figcaption figure footer " +
"header hgroup mark meter nav output progress section summary time video"
).split( " " ),
safeFrag = document.createDocumentFragment();
if ( safeFrag.createElement ) {
while ( nodeNames.length ) {
safeFrag.createElement(
nodeNames.pop()
);
}
}
return safeFrag;
}
})( jQuery ); })( jQuery );
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment