HLS, Thanks for the reply. It seems like the same results I'm getting about IE's DOM restriction. I guess I have to use normal javascript way to create DOM element to achieve the same result. Thanks again for all the replies, guys. Jay
On Aug 20, 7:24 pm, Pops <[EMAIL PROTECTED]> wrote: > Jay, > > Before finding jQuery, I had a need with my frame based applet where > one frame updated another. I could not do so with IE Worked find > under FF. To resolve it, I went a frame reload approach. > > Inspired by your message, I played with jQuery now to do this. I was > able to do it very easy with FF. I thought it was pretty cool > However, under IE, this did not work. > > Researching the issue, there are differences in accessing the Frame > document. I was able to access the frame document but IE still did not > allow writing to another frame. > > Researching further I found an interesting Security Focus article: > > http://www.securityfocus.com/archive/1/439032/100/0/threaded > > This appears to be a IE security restriction by design. In addition, > according to the article FF allowing this opens up security holes: > > "Firefox differentiates based on how you reference that object and > thus > allows you to overwrite native DOM methods on a thirdparty domain, > broadening the potential attack scope by allowing you to interfere > with > the operations of existing script code inside that thirdparty > document." > > Maybe this is old news with IE and you are allowed to update other > frames. But I couldn't get that to work. > > Here is the function I use to get the frame document; > > function getFrameDocument(aID){ > var rv = null; > // if contentDocument exists, W3C compliant (Mozilla) > if (parent.document.getElementById(aID).contentDocument){ > rv = parent.document.getElementById(aID).contentDocument; > } else { > // IE > rv = parent.window.frames[aID].document; > } > return rv; > > } > > __ > HLS > > On Aug 20, 2:49 pm, Jay W <[EMAIL PROTECTED]> wrote: > > > > > This method works fine for a single frame document. > > If you dynamically create a DOM element on the top frame and trying to > > move this element in IE, an error will be thrown. See this > > thread:http://groups.google.com/group/jquery-en/browse_thread/thread/e762d9b... > > > According to Jeff, I can use > > var doc = $('#testframe')[0].contentWindow.document; $ > > (doc.body).append('<span>test</span>'); > > to achieve using top's jQuery create element for all child frames. > > > However, this method does not has the flexibility to get the new > > element easily. The methods suggested so far will not work in IE. > > > Any other suggestion? Thanks. I appreciate all the responses. > > > On Aug 20, 12:21 pm, Karl Swedberg <[EMAIL PROTECTED]> wrote: > > > > You could do it like this, perhaps: > > > > var $testDiv = $("<div class='testDiv'></div>").appendTo > > > (window.document.body); > > > > Is that what you're looking for? > > > > --Karl > > > _________________ > > > Karl Swedbergwww.englishrules.comwww.learningjquery.com > > > > On Aug 20, 2007, at 11:47 AM, Jay W wrote: > > > > > With the help from a few jQuery'ers, the only way to dynamically > > > > create and append element using jQuery for multiframe application is > > > > > $(window.document.body).append("<div class='testDiv'></div>"); > > > > > This jQuery statement returns window.document.body object. > > > > > There will be quite a few elements created this way in a same > > > > document, it will be confusing to use array index to retrieve the > > > > newly created element. So the question is: if I want to get that newly > > > > created object directly, what's the correct way to do it? > > > > > Thanks.- Hide quoted text - > > > > - Show quoted text -- Hide quoted text - > > - Show quoted text -