Connecting Tech Pros Worldwide Help | Site Map

Problem accessing DOM of window.open result

DOM_scripter
Guest
 
Posts: n/a
#1: Mar 5 '06
Hi, I want to set a picture on the fly. For this I have a html file
with only an <img> tag - kind of a placholder.
So I do myWindow=window.open("data/myFile.html"). Then I set the src
attribute of the img object to the image I ant to show. I thought I
could do this by myWindow.img.src but this does not work. Even
myWindow.img.src.URL gives me an undefined so I wonder, is DOM access
of an object I get via "window.open" possible at all?

VK
Guest
 
Posts: n/a
#2: Mar 5 '06

re: Problem accessing DOM of window.open result



DOM_scripter wrote:[color=blue]
> Hi, I want to set a picture on the fly. For this I have a html file
> with only an <img> tag - kind of a placholder.
> So I do myWindow=window.open("data/myFile.html"). Then I set the src
> attribute of the img object to the image I ant to show. I thought I
> could do this by myWindow.img.src but this does not work. Even
> myWindow.img.src.URL gives me an undefined so I wonder, is DOM access
> of an object I get via "window.open" possible at all?[/color]

You may want to learn the DOM structure.

You image is a member of images collection wich is a member of document
object wich is a member of window object:

myWindow.document.images['imageName'].src = url;
or (as it's the only image on the page):
myWindow.document.images[0].src = url;

The trick is though that DOM addressing is not fully available until
the relevant window fires "load" event. So if you do everything in the
row:
...
var myWindow = window.open("data/myFile.html");
alert(myWindow.document.images[0].src);
....
you still may get en error on the second line because images collection
or the whole document will not be fully initialised yet.

If the sole purpose of your popup (which can be blocked btw by a popup
blocker) to show an image why not load the image itself?

<a href="bigOne.jpg" target="myPopup"><img src="smallOne.gif"></a>

Gérard Talbot
Guest
 
Posts: n/a
#3: Mar 5 '06

re: Problem accessing DOM of window.open result


DOM_scripter wrote :[color=blue]
> Hi, I want to set a picture on the fly. For this I have a html file
> with only an <img> tag - kind of a placholder.
> So I do myWindow=window.open("data/myFile.html"). Then I set the src
> attribute of the img object to the image I ant to show. I thought I
> could do this by myWindow.img.src but this does not work. Even
> myWindow.img.src.URL gives me an undefined so I wonder, is DOM access
> of an object I get via "window.open" possible at all?[/color]

Posting an url helps readers reading posts and helps them trying to
figure out what may be wrong in a page or set of pages.
For instance, we have no idea how you declare myWindow nor how you make
the call to change the src attribute.

You can modify the src attribute of a secondary window

1- assuming that the cross-domain security restrictions do not apply and

2- assuming that the document objects have been loaded in the document
when the access to the image is done. You must know that window object
and document object are created and loaded asynchronously.

For 1:
http://developer.mozilla.org/en/docs...and_parameters

For 2:
http://developer.mozilla.org/en/docs...en#Description

I have working examples of changing the src attribute of an image in a
secondary window.

Gérard
--
remove blah to email me
Closed Thread