Skip to main content

Bug Tracker

Side navigation

#10593 closed bug (invalid)

Opened October 27, 2011 07:23AM UTC

Closed November 05, 2011 09:54PM UTC

The "href" attribute of <a> element lost when using append() in old IE

Reported by: abiao.chen Owned by: abiao.chen
Priority: low Milestone: None
Component: manipulation Version: 1.7b2
Keywords: Cc:
Blocked by: Blocking:
Description

After calling append() to add a element by passing a string arg which declares an <a> element with both "href" and "onclick" attributes, I found in some IE versions (such as IE <9 on windows server 2003) the "href" attribute was lost.

I traced the execution and found in cloneAttributes() function:

1. Each of src&dest had the "href" attribute at the beganning.

2. All the attributes of dest was cleaned by cleanAttribute().

3. The "href" attribute was missed when merge the src attribute into dest by calling mergeAttributes().

Does this a jQuery or IE problem?

Here is the HTML file:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<script type="text/javascript" src="jquery-1.5.min.js"></script>
		<script>
			function addcontent() {
				$("div").append('<a href="javascript:b;" onclick="alert(0)">link3</a>');
			}

			$(document).ready(addcontent);
		</script>
</head>
<body>
	<a href="javascript:x;" onclick="alert(0)">link1</a>
	<div></div>
</body>

Attachments (0)
Change History (3)

Changed November 02, 2011 12:52AM UTC by timmywil comment:1

component: unfiledmanipulation
owner: → abiao.chen
priority: undecidedlow
status: newpending

Thanks for taking the time to contribute to the jQuery project! Please provide a complete reduced test case on jsFiddle to help us assess your ticket.

Additionally, be sure to test against the jQuery Edge version to ensure the issue still exists. To get you started, use this boilerplate: http://jsfiddle.net/FrKyN/ Open the link and click to "Fork" (in the top menu) to get started.

Changed November 02, 2011 04:31AM UTC by abiao.chen comment:2

status: pendingnew

I found this bug in IE6 and tried jsFiddle. While in IE6, jsFiddle doesn't work and cannot test this bug. Thus, I paste my code here.

Changed November 05, 2011 09:54PM UTC by timmywil comment:3

resolution: → invalid
status: newclosed

The javascript pseudo protocol has many issues in IE6. I recommend steering clear of using it.