Bug Tracker

Ticket #4011 (closed bug: fixed)

Opened 7 years ago

Last modified 3 years ago

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:
Blocking: Blocked by:



$('<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

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 6 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

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

comment:6 Changed 6 years ago by john

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