Skip to main content

Bug Tracker

Side navigation

#4011 closed bug (fixed)

Opened January 28, 2009 09:33AM UTC

Closed December 06, 2009 02:32AM UTC

Last modified March 15, 2012 03:16PM UTC

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

Attachments (0)
Change History (6)

Changed January 29, 2009 02:00AM UTC by dmethvin comment:1

need: ReviewPatch
owner: → 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.

Changed May 28, 2009 03:44AM UTC by dmethvin comment:2

component: unfilledcore

Changed June 23, 2009 01:18AM UTC by dmethvin comment:3

Per #4805, also happens on IE8.

Changed December 06, 2009 01:15AM UTC by dmethvin comment:4

Changed December 06, 2009 02:07AM UTC by dmethvin comment:5

milestone: 1.3.21.4
version: 1.3.11.4a1

Changed December 06, 2009 02:32AM UTC by john comment:6

resolution: → fixed
status: newclosed