homepage Welcome to WebmasterWorld Guest from 54.161.155.142
register, free tools, login, search, pro membership, help, library, announcements, recent posts, open posts,
Become a Pro Member
Home / Forums Index / Code, Content, and Presentation / JavaScript and AJAX
Forum Library, Charter, Moderator: open

JavaScript and AJAX Forum

    
Accessing DOM elements of an iFrame
using JavaScript
BlobFisk




msg:1472202
 5:20 pm on Mar 6, 2003 (gmt 0)

Hi All,

I am trying to alter the style property of an object (lets call it link) within an iFrame (lets call it daFrame) of a page. The code that I am using:


document.getElementById('daFrame').document.getElementById('link').style.backgroundColor="#000";

What I am trying to do, in theory, is manipulate (using JavaScript) some object within an iFrame, from the parent frame. I've tried a large number of different approaches without any success. Any pointers in the right direction would be great! (This need only work within IE!)

TIA

 

DrDoc




msg:1472203
 7:25 pm on Mar 6, 2003 (gmt 0)

Well, all you have to do is call the iframe like you would any other frame:

daFrame.document.getElementById ...

The iframe needs a name though ..

ricfink




msg:1472204
 12:48 am on Mar 8, 2003 (gmt 0)

the iframe is unusual in that it "lives" in two place in the browser javascript heirarchy.

It's part of the window.frames collection because it's a kind of frame AND it's also a part of the document tree because it's an element.

window.frames[x].document.getElementById('').style.yyyyyyy

with x being 0 if there are no other iframes in the document.

also the syntax you had before should be ok, I wonder why it's not working. The problem may be the id "link".
Try something else.
If it still doesn't work, try it using the frames collection as above and then, if it still doesn't work, the problem lies elsewhere.

DrDoc




msg:1472205
 1:39 pm on Mar 8, 2003 (gmt 0)

Also, it's not necessary to use "backgroundColor" .. you can use just "background"

BlobFisk




msg:1472206
 10:31 am on Mar 10, 2003 (gmt 0)

Hi all,

Thanks for all your suggestions. As per ricfinks suggestion I used the window.frames[] syntax and this is working perfectly now:


window.frames[0].document.getElementById('daLink').style.backgroundColor="#000";

I'm not sure why trying to get at it using getElementById didn't work, as (like ricfink) I thought that an iFrame lived both in the Frames array and the Id array.

DrDoc, both background and backgroundColor work sine (in IE) - does anyone know which is the W3C standard for this?

DrDoc




msg:1472207
 8:24 pm on Mar 10, 2003 (gmt 0)

They are both W3C standard (or JS standard if you want). It's just that "background" is more widely supported.

Global Options:
 top home search open messages active posts  
 

Home / Forums Index / Code, Content, and Presentation / JavaScript and AJAX
rss feed

All trademarks and copyrights held by respective owners. Member comments are owned by the poster.
Home ¦ Free Tools ¦ Terms of Service ¦ Privacy Policy ¦ Report Problem ¦ About ¦ Library ¦ Newsletter
WebmasterWorld is a Developer Shed Community owned by Jim Boykin.
© Webmaster World 1996-2014 all rights reserved