Side navigation
#14180 closed bug (fixed)
Opened July 24, 2013 01:51PM UTC
Closed November 13, 2013 02:22AM UTC
Last modified November 14, 2013 09:35PM UTC
focusin/out special events don't work cross-window
Reported by: | scottgonzalez | Owned by: | dmethvin |
---|---|---|---|
Priority: | low | Milestone: | 1.11/2.1 |
Component: | event | Version: | 1.10.2 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
The special event implementation for focusin/out refer to the global document
instead of the owner document of the element the event handler is being added to.
Attachments (0)
Change History (12)
Changed July 24, 2013 02:34PM UTC by comment:1
component: | unfiled → event |
---|---|
milestone: | None → 1.10.3/2.0.4 |
priority: | undecided → low |
status: | new → open |
Changed July 25, 2013 08:57PM UTC by comment:2
Although...what is the use case for this? If the event is in an iframe it will have to be in the same domain. If the iframe is navigated we will leak the event data.
Changed July 25, 2013 09:27PM UTC by comment:3
jQuery UI dialogs bind to focusin
on the document when a modal dialog is opened. If the user does something like $( otherWindow ).find( "#dialog" ).dialog({ modal: true })
then our event handler is listening on the wrong document.
Leaking data does seem like a concern. But I think this is uncommon enough that if someone runs into this problem and they're leaking a considerable amount of data (what could they possibly be doing with that many event handlers cross document?) it'd be easy enough for them to work around by explicitly unbinding.
Changed July 25, 2013 10:02PM UTC by comment:4
Yeah they'll have to explicitly unbind. For example if the iframe is part of an MVC view that is updated via a bulk .html()
, the jQuery.cleanData()
that precedes it won't venture into the iframe contents and find the attached event.
I'll try my hand at creating a unit test for this but I may give up, focus tests are the most notoriously unreliable.
Changed September 16, 2013 01:21AM UTC by comment:5
milestone: | 1.10.3/2.0.4 → 1.11/2.1 |
---|
Bulk update for new milestone
Changed September 17, 2013 02:16PM UTC by comment:6
owner: | → dmethvin |
---|---|
status: | open → assigned |
Changed October 23, 2013 02:03AM UTC by comment:7
resolution: | → fixed |
---|---|
status: | assigned → closed |
Fix #14180. Allow cross-frame use of focusin/out. Close gh-1369.
Changeset: 9b6f0745805941a6d7b7c16c02cf56ab00021c82
Changed October 23, 2013 02:49AM UTC by comment:8
Revert "Fix #14180. Allow cross-frame use of focusin/out. Close gh-1369."
This reverts commit 9b6f0745805941a6d7b7c16c02cf56ab00021c82.
Changeset: eca79fbf5b79d85d137a8eb207fcb1431af47d4e
Changed October 23, 2013 02:50AM UTC by comment:9
resolution: | fixed |
---|---|
status: | closed → reopened |
Changed October 23, 2013 02:51AM UTC by comment:10
status: | reopened → open |
---|
Did I mention I hate cross-frame focus?
Changed November 13, 2013 02:22AM UTC by comment:11
resolution: | → fixed |
---|---|
status: | open → closed |
Fix #14180. Allow cross-frame use of focusin/out. Close gh-1369.
Changeset: 1cecf64e5aa415367a7dae0b55c2dd17b591442d
Changed November 14, 2013 09:35PM UTC by comment:12
Ref #14180, let focusin/out work on non-element targets.
Changeset: c2aca17d457d302cb1683f925b9e5ee93f0984ea
This seems easily fixable if we use data on the
document
rather than a single variable in the closure.