Bug Tracker

Opened 7 years ago

Closed 6 years ago

Last modified 4 years ago

#4011 closed bug (fixed)

Internet explorer 7.0.6001.18000 crashes on append

Reported by: jacobww Owned by: john
Priority: major Milestone: 1.4
Component: core Version: 1.4a1
Keywords: Cc:
Blocked by: Blocking:



$('<p></p>').append(" ", " ");

in IE 7.0.6001.18000 will crash the browser. Bug found using the DateInput plugin from http://jonathanleighton.com/projects/date-input

Change History (6)

comment:1 Changed 7 years ago by dmethvin

  • need changed from Review to Patch
  • Owner set to john

The error occurs in IE8 RC1 as well, in jQuery.clean on this line:

    fragment.appendChild( ret[i] );  // "Invalid argument"

It's trying to append the text node in ret[i]. This is new to 1.3; 1.2.6 used a different approach for jQuery.clean. These will work in IE in 1.3:

$('<p></p>').append(" ");
$('<p></p>').append("<p>test</p>", "<div>test</div>");

but these will not:

$('<p></p>').append(" ", " ");
$('<p></p>').append(" ", "<p>test</p>");
$('<p></p>').append("testing", "123");

Tracing it in the IE8 debugger, what seems to be happening is that the text node stored in ret becomes invalid when the second argument is processed by assigning into div.innerHTML. In 1.2.6 the div was inside the jQuery.each(elems ... function, but in 1.3 it was hoisted out and accessed by closure. When I moved it back inside the function, IE seemed to be satisfied again.

comment:2 Changed 7 years ago by dmethvin

  • Component changed from unfilled to core

comment:3 Changed 6 years ago by dmethvin

Per #4805, also happens on IE8.

comment:4 Changed 6 years ago by dmethvin

  • need changed from Patch to Commit

comment:5 Changed 6 years ago by dmethvin

  • Milestone changed from 1.3.2 to 1.4
  • Version changed from 1.3.1 to 1.4a1

comment:6 Changed 6 years ago by john

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.