[Javascript] Enumerating Other Window Objects

Chris Tifer christ at saeweb.com
Fri Mar 21 14:46:05 CST 2003


It works the same way as if you were to loop through the collections in the
same
window, but instead you just need to know how to target it as I said earlier
through
the handler you used when opening:

// Called in the main window to open a new window
// Just create a file named Test2.html and throw some links on it.
var myWin = window.open("Test2.html", "TestWindow")

// function is also in the main window and when you call the function
// by doing: getLinks(myWin)  - since myWin is your window handle
function getLinks(objWin){
 linkCol = objWin.document.links
 for(var x = 0; x < linkCol.length; x++){
  alert(linkCol[x])
 }
}

The problem would arise though if you left the page that has the handler set
up as
you won't be able to reference that window again unless you set up another
handler.

This works in both IE (4+) and NN 7. I would have tested on NN4 but thank
god I don't have that installed on my machine.

Chris Tifer
http://www.emailajoke.com

----- Original Message -----
From: <uplate at attbi.com>
To: "[JavaScript List]" <javascript at LaTech.edu>
Sent: Friday, March 21, 2003 3:18 PM
Subject: Re: [Javascript] Enumerating Other Window Objects


> I'm really trying to learn how to maneuver about a child windows
collections.
> I have no nefarious intentions in mind if that is what you are asking.
> > Interesting.  I'll have to look into that in more detail.
> >
> > It appears that you are more interested in capturing links/anchors
rather
> > than every object on the other page.  Am I right, or have I
misinterpreted
> > your request again?
> >
> > -- Dave Lovering
> >
> > ----- Original Message -----
> > From: <uplate at attbi.com>
> > To: <javascript at LaTech.edu>
> > Sent: Friday, March 21, 2003 1:05 PM
> > Subject: Re: [Javascript] Enumerating Other Window Objects
> >
> >
> > > I guess my earlier email wasn't very clear. What I was attempting to
do
> > was to
> > > enumerate through objects on the child window opened with the
window.open
> > > method.
> > > Here is my entire html document:
> > >
> > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> > > <html>
> > > <head>
> > > <title>Link Test</title>
> > > <meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
> > > <script language="JavaScript" type="text/JavaScript">
> > > <!--
> > > var myWin
> > >
> > > function openWin()
> > > {
> > >     myWin = window.open("http://www.drudgereport.com","myWin")
> > > }
> > >
> > > function printLinks()
> > > {
> > >     var str = "";
> > >     for (i=0;i< myWin.document.links.length;i++)
> > >     {
> > >         str = str +  myWin.document.links[i] + "<BR>";
> > >     }
> > >     document.write(str);
> > > }
> > > //-->
> > > </script>
> > > </head>
> > >
> > > <body>
> > > <input name="Button2" type="button" onClick="printLinks()"
value="Print">
> > > <input type="button" name="Button" value="Open" onClick="openWin()">
> > > </body>
> > > </html>
> > >
> > > Perhaps this isn't possible, I'm pretty new to javascript.
> > > > I thought so too, until I did a descending tree analysis.
Apparently,
> > the
> > > > window.opener sees as its first object a 'document', much like a
'frame'
> > > > does.  Again, to get at the soft and squishy insides you need to
punch
> > > > through this crust by de-referencing to document.  [I've heard tell
that
> > > > this is somewhat variable, depending on which version of IE you are
> > running,
> > > > and/or whether you are using a Netscape model browser].
> > > >
> > > > If you can wave your magic wand to make this go away, I'll be glad
to
> > cheer
> > > > the process from the sidelines.
> > > >
> > > > -- Dave Lovering
> > > >
> > > > (BTW -- many of the things inside Microsoft manuals don't work as
> > described.
> > > > If you think you've found a case where this convention is broken,
try
> > using
> > > > a getProps routine to map out the properties associated with a given
> > object
> > > > layer.  I guarantee you many hours of fear, loathing, and surprise).
> > > >
> > > > ----- Original Message -----
> > > > From: "Peter Brunone" <peter at brunone.com>
> > > > To: "[JavaScript List]" <javascript at LaTech.edu>
> > > > Sent: Friday, March 21, 2003 11:34 AM
> > > > Subject: Re: [Javascript] Enumerating Other Window
> > > >
> > > >
> > > > > Point of parliamentary procedure:  shouldn't
> > > > >
> > > > > window.opener.parent.document.framename
> > > > >
> > > > > be
> > > > >
> > > > > window.opener.parent.framename
> > > > >
> > > > > ?  I don't think you can get to the frameset through the document
> > > > (although with IE 5.5 and above, you can treat iframes as CSS
elements).
> > > > >
> > > > > Cheers,
> > > > >
> > > > > Peter
> > > > >
> > > > > ---------- Original Message ----------------------------------
> > > > > From: "David Lovering" <dlovering at gazos.com>
> > > > > Reply-To: "[JavaScript List]" <javascript at LaTech.edu>
> > > > > Date: Fri, 21 Mar 2003 11:29:36 -0700
> > > > >
> > > > > >It isn't quite that simple.
> > > > > >
> > > > > >When a program spawns a remote, the parent can do pretty much as
you
> > > > said,
> > > > > >and use
> > > > > >
> > > > > >    windowname.document.formname.varname.attribute  -- OR --
> > > > > >
windowname.document.framename.document.formname.varname.attribute
> > > > > >// one or more frames
> > > > > >
> > > > > >to call up the bits in the child window(s).
> > > > > >
> > > > > >When the child program wants to access items in the parent
window, it
> > is
> > > > a
> > > > > >bit more complicated.
> > > > > >
> > > > > >    For a single form, no-frame parent:
> > > > > >
> > > > > >    window.opener.document.formname.varname.attribute
> > > > > >
> > > > > >    For multiframe, multiform parent(s):
> > > > > >
> > > > > >    window.opener.parent.document.formname.varname.attribute --
OR --
> > > > > >
> > > > >
> > > >
> >
>window.opener.parent.document.framename.document.formname.varname.attribute
> > > > > >
> > > > > >  It gets REALLY tedious when you start embedding things inside
> > <OBJECT>
> > > > > >declarations, as it appears with
> > > > > >MicroSloth's defective DOM structure you can only go from the
parent
> > to
> > > > the
> > > > > >child, and not backwards.  I won't even attempt to give you a
path
> > map
> > > > for
> > > > > >this -- it is too complicated to explain lucidly in a few
sentences.
> > > > > >
> > > > > >  The reason the second 'document' declarations are needed inside
> > pages
> > > > with
> > > > > >frames is that the frame acts as a document boundary, and to
access
> > the
> > > > > >internals of one you must 'bust-through' the hard outer layer to
get
> > at
> > > > the
> > > > > >soft and chewy insides.
> > > > > >
> > > > > >  Hope this helps.
> > > > > >
> > > > > >  -- Dave Lovering
> > > > > >
> > > > > >----- Original Message -----
> > > > > >From: "Chris Tifer" <christ at saeweb.com>
> > > > > >To: "[JavaScript List]" <javascript at LaTech.edu>
> > > > > >Sent: Friday, March 21, 2003 7:49 AM
> > > > > >Subject: Re: [Javascript] Enumerating Other Window
> > > > > >
> > > > > >
> > > > > >> You just have to target which window you want to look through
by
> > > > > >> using the handler you used when opening the window.
> > > > > >>
> > > > > >> Chris Tifer
> > > > > >> http://www.emailajoke.com
> > > > > >>
> > > > > >> ----- Original Message -----
> > > > > >> From: <uplate at attbi.com>
> > > > > >> To: <Javascript at LaTech.edu>
> > > > > >> Sent: Friday, March 21, 2003 9:30 AM
> > > > > >> Subject: [Javascript] Enumerating Other Window
> > > > > >>
> > > > > >>
> > > > > >> > Greetings;
> > > > > >> >
> > > > > >> > using the window.open() method is it possible to open another
URL
> > and
> > > > > >then
> > > > > >> > enumerating through it's links or images arrays?
> > > > > >> > Opening the window is no problem and even using a for loop to
> > > > retrieve
> > > > > >the
> > > > > >> links
> > > > > >> > on the current document is no probllem, but I can't seem to
get
> > the
> > > > two
> > > > > >> working
> > > > > >> > together.
> > > > > >> > Any ideas?
> > > > > >> > Thanks.
> > > > > _______________________________________________
> > > > > Javascript mailing list
> > > > > Javascript at LaTech.edu
> > > > > https://lists.LaTech.edu/mailman/listinfo/javascript
> > > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > Javascript mailing list
> > > > Javascript at LaTech.edu
> > > > https://lists.LaTech.edu/mailman/listinfo/javascript
> > > _______________________________________________
> > > Javascript mailing list
> > > Javascript at LaTech.edu
> > > https://lists.LaTech.edu/mailman/listinfo/javascript
> > >
> >
> >
> > _______________________________________________
> > Javascript mailing list
> > Javascript at LaTech.edu
> > https://lists.LaTech.edu/mailman/listinfo/javascript
> _______________________________________________
> Javascript mailing list
> Javascript at LaTech.edu
> https://lists.LaTech.edu/mailman/listinfo/javascript
>



More information about the Javascript mailing list