diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core.js | 2 | ||||
-rw-r--r-- | src/core/parseHTML.js | 8 | ||||
-rw-r--r-- | src/core/support.js | 6 |
3 files changed, 13 insertions, 3 deletions
diff --git a/src/core.js b/src/core.js index fa8436a01..dab633f9c 100644 --- a/src/core.js +++ b/src/core.js @@ -7,7 +7,7 @@ define([ "./var/class2type", "./var/toString", "./var/hasOwn", - "./var/support" + "./core/support" ], function( arr, slice, concat, push, indexOf, class2type, toString, hasOwn, support ) { var diff --git a/src/core/parseHTML.js b/src/core/parseHTML.js index 808d60e3d..54016a4c1 100644 --- a/src/core/parseHTML.js +++ b/src/core/parseHTML.js @@ -2,7 +2,7 @@ define([ "../core", "./var/rsingleTag", "../manipulation" // buildFragment -], function( jQuery, rsingleTag ) { +], function( jQuery, rsingleTag, support ) { // data: string of html // context (optional): If specified, the fragment will be created in this context, @@ -16,7 +16,11 @@ jQuery.parseHTML = function( data, context, keepScripts ) { keepScripts = context; context = false; } - context = context || document; + // document.implementation stops scripts or inline event handlers from + // being executed immediately + context = context || ( support.createHTMLDocument ? + document.implementation.createHTMLDocument() : + document ); var parsed = rsingleTag.exec( data ), scripts = !keepScripts && []; diff --git a/src/core/support.js b/src/core/support.js new file mode 100644 index 000000000..fe3d6c218 --- /dev/null +++ b/src/core/support.js @@ -0,0 +1,6 @@ +define([ + "../var/support" +], function( jQuery, support ) { + // window.document is used here as it's before the sandboxed document + support.createHTMLDocument = !!window.document.implementation.createHTMLDocument; +}); |