Bug Tracker

Opened 14 years ago

Closed 12 years ago

Last modified 12 years ago

#4196 closed bug (duplicate)

$(fn) acts differently in browsers if jQuery loaded late

Reported by: friedcell Owned by: brandon
Priority: major Milestone: 1.3.2
Component: event Version: 1.3.1
Keywords: Cc:
Blocked by: Blocking:

Description

If you load jQuery after DOMContentLoaded and load events fired modern browsers will never fire $(fn) while IE will fire it immediately since it doesn't rely on events.

Looking at the code a simple check should be made after setting readyBound: if (document.readyState === 'complete')

return jQuery.ready();

Attachments (1)

test.html (950 bytes) - added by fidlej 13 years ago.
A test to reproduce the bug.

Download all attachments as: .zip

Change History (4)

Changed 13 years ago by fidlej

Attachment: test.html added

A test to reproduce the bug.

comment:1 Changed 13 years ago by fidlej

The function passed to $(document).ready() is never called if:

  1. 1) Using Firefox 3.5 or older.
  2. 2) And loading jquery on demand. I.e., by inserting jquery script into <head> dynamically.

How to reproduce:

  1. 1) Open the attached test.html.
  2. 2) Click on the "Load jQuery" link.
  3. 3) Two alerts should arise.

Only the "before ready" alert arises on Firefox 3.5. The "inside ready" alert is never seen there.

The old Firefox don't have document.readyState.

comment:2 Changed 12 years ago by SlexAxton

Resolution: duplicate
Status: newclosed

comment:3 Changed 12 years ago by SlexAxton

Duplicate of #4889.

Note: See TracTickets for help on using tickets.