Search and Top Navigation
#7803 closed bug (duplicate)
Opened October 20, 2011 03:54PM UTC
Closed October 20, 2011 04:29PM UTC
Last modified October 20, 2011 05:14PM UTC
IE7, creating widgets on parent document
Reported by: | ronchalant | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | 1.9.0 |
Component: | ui.widget | Version: | 1.8.16 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
I maintain a legacy web application and at times we find it necessary to use iframes rather than injecting directly into the existing DOM (for reasons I don't want to delve into here, just know that it's unfortunately necessary).
At times, I actually have injected elements into the DOM of the parent document from within the iframe, using following a ~~hack~~ pattern like this:
this._document = this.element.get(0).ownerDocument || document; this._win = this._document.defaultView || this._document .parentWindow || window; ... $('<div></div>', this._document).appendTo($someElemOnParent)....;
This wasn't necessary for most browsers, but IE7 at least seemed to require it.
Unfortunately I found that if some of my injected DOM elements tried to use jQuery UI widgets (e.g. buttons) it would fail for IE7. (I've been too frightened and not drunk enough to try it in IE6)
I'm not sure if calling widgets on DOM elements in parent documents is even supported, but I do find myself in a position where I'm testing if IE7 or less is the browser to just use the iframe as the document context.
Attachments (0)
Change History (5)
Changed October 20, 2011 04:29PM UTC by comment:1
resolution: | → duplicate |
---|---|
status: | new → closed |
Changed October 20, 2011 04:41PM UTC by comment:3
I'm not sure it's the same issue. I'm not using event binding or selectors; it's failing when attempting to call .button() on a DOM element created with a fragment in a parent window.
The failure is when the jQuery UI widgets themselves are used on elements created (with proper document context) in a parent window from an iframe.
Because of the iframe nature, it's not something I can code up on jsfiddle, but here's something that will fail if called from within an iframe to a parent window (note that the parent window does need to at least have jquery ui styles):
var pdoc = parent.document; // parent document var $pbody = $(pdoc).find('body'); // body from parent doc $('<button></button>', pdoc) .appendTo($pbody) // appends okay in IE7 .button() // << fails here ;
If it's not supported that's fine; I have modified the button widget for my project to take into account which document this.element is on and pass it into the "<span></span>" creation block. This solves my issue since it's (currently) the only widget I'm leveraging in the parent window.
Changed October 20, 2011 04:45PM UTC by comment:4
The change that addresses my issue is on my fork:
Changed October 20, 2011 05:14PM UTC by comment:5
It's the same issue; that ticket is for anything related to cross-window issues. I'll land the your button specific fix right now.