Bug Tracker

Opened 14 years ago

Closed 13 years ago

Last modified 11 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:

Description

Running

$('<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 14 years ago by dmethvin

need: ReviewPatch
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 14 years ago by dmethvin

Component: unfilledcore

comment:3 Changed 14 years ago by dmethvin

Per #4805, also happens on IE8.

comment:5 Changed 13 years ago by dmethvin

Milestone: 1.3.21.4
Version: 1.3.11.4a1

comment:6 Changed 13 years ago by john

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.