Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Guidance Request (and a specific question)

0 views
Skip to first unread message

eBob.com

unread,
May 15, 2008, 11:53:23 PM5/15/08
to
I am wondering if JavaScript is a reasonable way to solve my problem. I
have to snatch some info from a web page and build a report. Some of the
info comes from the web page and some will be supplied by the end user.
This process will be initiated by the end user clicking on a menu item in
the IE (6.0) Tools menu. I will need to access the html of the web page and
then solicit some input from the end user via some form or something
similar. I know that's rather vague but does it seem feasible?

Thus far I am trying to access the html of the page and it's been tough
going. One of the bits of info I want to snatch from a web page is a
telephone number, which, on one of the web sites, looks like this ...

<table cellpadding='0' cellspacing='0' align='center'>
<tr>
<td align='center' class='class_20' >Telphone: <span class='class_23'
style="font-size:14px;font-weight:bold;">111-222-3333</span></td>
</tr>
</table>

After reading the first few chapters in a JavaScript book and looking at
some DOM reference material, I've, so far, got the following:

<script type="text/javascript">
var parentwin = external.menuArguments;
var doc = parentwin.document;
var x = doc.getElementsByTagName("td")
alert(x.length + " td things")
// alert(x[0].toString)
for (whatever in x)
{ alert(whatever.nodeName)
}
</script>

I've tried many, many things but I have been unable to find the text I am
after - in this case "Telephone:" and the telephone number, "111-222-3333".
The objects returned by getElementsByTagName don't seem to have a toString
method, which I had hoped would give me "<td ... </td>". I am currently
trying to learn something about DOM "nodes" - but I am not at all sure that
that will be the answer. So, the specific question I promised - how do I
grab the strings "Telephone:" and "111-222-3333" from the html shown above.

Thanks for whatever help, pointers, sympathy you are kind enough to provide.
Bob

Martin Honnen

unread,
May 16, 2008, 11:54:12 AM5/16/08
to
eBob.com wrote:

> <table cellpadding='0' cellspacing='0' align='center'>
> <tr>
> <td align='center' class='class_20' >Telphone: <span class='class_23'
> style="font-size:14px;font-weight:bold;">111-222-3333</span></td>
> </tr>
> </table>
>
> After reading the first few chapters in a JavaScript book and looking at
> some DOM reference material, I've, so far, got the following:
>
> <script type="text/javascript">
> var parentwin = external.menuArguments;
> var doc = parentwin.document;

> I've tried many, many things but I have been unable to find the text I am
> after - in this case "Telephone:" and the telephone number, "111-222-3333".
> The objects returned by getElementsByTagName don't seem to have a toString
> method, which I had hoped would give me "<td ... </td>".

With IE's HTML DOM the element nodes have properties innerText,
innerHTML and outerHTML. Also table elements objects have a rows
collection and rows have a cells collection. That way
var table1 = doc.getElementsByTagName('table')[0];
var cell1 = table1.rows[0].cells[0];
var text = cell1.innerText;
That cell above has a couple of child nodes, its firstChild is a text
node with the text "Telphone: ", its second child is a span element so
you could use
var text1 = cell1.firstChild.nodeValue;
and
var text2 = cell1.childNodes[1].innerText;
to have text1 hold the text "Telphone: " and text2 hold the text
"111-222-3333"

--

Martin Honnen
http://JavaScript.FAQTs.com/

eBob.com

unread,
May 16, 2008, 1:26:23 PM5/16/08
to

"Martin Honnen" <maho...@yahoo.de> wrote in message
news:482dae26$0$7538$9b4e...@newsspool1.arcor-online.net...

Thank you VERY much Martin! That's exactly what I needed. Bob


0 new messages