aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRick Waldron <waldron.rick@gmail.com>2011-09-19 16:42:36 -0400
committertimmywil <timmywillisn@gmail.com>2011-09-19 16:42:36 -0400
commit9ecdb2472be7661477564e46bce51432d4a5a84e (patch)
tree5059797d940cc0b009b30141b023caa2afcb5523 /src
parentbba3d610c7e3b611fe1eb89178c91106a156a5dc (diff)
downloadjquery-9ecdb2472be7661477564e46bce51432d4a5a84e.tar.gz
jquery-9ecdb2472be7661477564e46bce51432d4a5a84e.zip
Landing pull request 490. 1.7 HTML5 Support for innerHTML, clone & style. Fixes #6485.
More Details: - https://github.com/jquery/jquery/pull/490 - http://bugs.jquery.com/ticket/6485
Diffstat (limited to 'src')
-rw-r--r--src/manipulation.js21
-rw-r--r--src/support.js5
2 files changed, 24 insertions, 2 deletions
diff --git a/src/manipulation.js b/src/manipulation.js
index 35c9544ff..bc2af18dc 100644
--- a/src/manipulation.js
+++ b/src/manipulation.js
@@ -20,7 +20,23 @@ var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
area: [ 1, "<map>", "</map>" ],
_default: [ 0, "", "" ]
- };
+ },
+ safeFragment = (function() {
+ 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.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
@@ -625,6 +641,9 @@ jQuery.extend({
depth = wrap[0],
div = context.createElement("div");
+ // Append wrapper element to unknown element safe doc fragment
+ safeFragment.appendChild( div );
+
// Go to html and back, then peel off extra wrappers
div.innerHTML = wrap[1] + elem + wrap[2];
diff --git a/src/support.js b/src/support.js
index 6608d9125..ad1bd9a57 100644
--- a/src/support.js
+++ b/src/support.js
@@ -24,7 +24,7 @@ jQuery.support = (function() {
// Preliminary tests
div.setAttribute("className", "t");
- div.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
+ div.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/><nav></nav>";
all = div.getElementsByTagName( "*" );
@@ -69,6 +69,9 @@ jQuery.support = (function() {
// (IE uses styleFloat instead of cssFloat)
cssFloat: !!a.style.cssFloat,
+ // Make sure unknown elements (like HTML5 elems) are handled appropriately
+ unknownElems: !!div.getElementsByTagName( "nav" ).length,
+
// Make sure that if no value is specified for a checkbox
// that it defaults to "on".
// (WebKit defaults to "" instead)