Ticket #7994 (closed bug: wontfix)
.attr('href', ...) may change the text part.
| Reported by: | anonymous | Owned by: | |
|---|---|---|---|
| Priority: | low | Milestone: | 1.next |
| Component: | attributes | Version: | 1.4.4 |
| Keywords: | Cc: | ||
| Blocking: | Blocked by: |
Description
On IE8, I have element <a href=" http://testurl">test@test</a> and use .attr('href', ' http://testurl2') to change the href. But the text part (test@test) is changed to http://testurl2 too.
The repro is at: http://jsfiddle.net/7x3RV/2/
Change History
comment:1 Changed 2 years ago by rwaldron
- Priority changed from undecided to low
- Component changed from unfiled to attributes
comment:3 Changed 2 years ago by jitter
This is a bug in IE not jQuery as this test case demonstrates.
Related information found by quick googling
- http://webbugtrack.blogspot.com/2008/07/bug-140-changing-mailto-links-error-in.html
- http://social.msdn.microsoft.com/forums/en-US/iewebdevelopment/thread/aa6bf9a5-0c0b-4a02-a115-c5b85783ca8c
I'm not sure if this is fixable.
comment:4 Changed 2 years ago by danheberden
Well a fix would add, imo, too much overhead. As jitter's second link mentions (though i put in a check for the @ before bothering with replacing crap)
var $a = $(this), // assuming your link element in a click handler or whatever
old = $a.html();
$a.attr('href', '//whaver'); // set the href
if ( old.match( /@/ ) ) { // or indexOf , whatever
$a.html( old );
}
Please follow the bug reporting guidlines and use jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.
