Adding some fixes for commit [6537]. If there's leading whitespace, or if an exceptio...
authorJohn Resig <jeresig@gmail.com>
Tue, 15 Sep 2009 16:46:15 +0000 (16:46 +0000)
committerJohn Resig <jeresig@gmail.com>
Tue, 15 Sep 2009 16:46:15 +0000 (16:46 +0000)
src/manipulation.js

index b883567..2a1e923 100644 (file)
@@ -189,15 +189,21 @@ jQuery.fn.extend({
 
                // See if we can take a shortcut and just use innerHTML
                } else if ( typeof value === "string" && !/<script/i.test( value ) &&
-                       this[0] && !jQuery.isXMLDoc( this[0] ) &&
+                       (!jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) &&
                        !wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) {
 
-                       for ( var i = 0, l = this.length; i < l; i++ ) {
-                               // Remove element nodes and prevent memory leaks
-                               if ( this[i].nodeType === 1 ) {
-                                       cleanData( this[i].getElementsByTagName("*") );
-                                       this[i].innerHTML = value;
+                       try {
+                               for ( var i = 0, l = this.length; i < l; i++ ) {
+                                       // Remove element nodes and prevent memory leaks
+                                       if ( this[i].nodeType === 1 ) {
+                                               cleanData( this[i].getElementsByTagName("*") );
+                                               this[i].innerHTML = value;
+                                       }
                                }
+
+                       // If using innerHTML throws an exception, use the fallback method
+                       } catch(e) {
+                               this.empty().append( value );
                        }
 
                } else {