Problem accessing DOM of window.open result

D

DOM_scripter

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?
 
V

VK

DOM_scripter said:
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?

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

Gérard Talbot

DOM_scripter wrote :
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?

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/DOM:window.open#Return_value_and_parameters

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

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

Gérard
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top