Ticket #10236 (closed bug: duplicate)
Regression in jQuery 1.6.3: not working with XHTML documents because of inserting non-wellformed XML
| Reported by: | anonymous | Owned by: | |
|---|---|---|---|
| Priority: | blocker | Milestone: | 1.6.4 |
| Component: | support | Version: | 1.6.3 |
| Keywords: | Cc: | ||
| Blocking: | Blocked by: |
Description
jQuery 1.6.3 inserts non-wellformed XML so that it produces error messages in browsers, leaving "jQuery" and "$" undefined. This does not happen with jQuery 1.6.2.
The problem where jQuery.support is defined, at line 1182:
// Preliminary tests
div.setAttribute("className", "t");
div.innerHTML = " <link><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type=checkbox>";
This is not well-formed XML because <input type=checkbox> misses quotes. It should be <input type="checkbox"> or <input type='checkbox'>.
The problem does not occur with jQuery 1.6.2 because there it reads: <input type='checkbox'/> which is well-formed XML.
Because of this, jQuery 1.6.3 can't be used in XHTML ("application/xhtml+xml") documents. This is what Firefox shows after I updated jQuery to 1.6.3: http://i56.tinypic.com/abjxo0.png
Change History
comment:1 Changed 21 months ago by rwaldron
- Priority changed from undecided to blocker
- Resolution set to duplicate
- Status changed from new to closed
- Component changed from unfiled to support
- Milestone changed from None to 1.6.4
comment:3 Changed 21 months ago by Herbalite
When inserting the quotes as suggested above the next non XML conform issue is that neither the link, nor the input tag in that line is terminated.
When the line 1182 looks like the follwing jQuery appears to be working again.
div.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
Please follow the bug reporting guidlines and use jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.
