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
> <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/
Thank you VERY much Martin! That's exactly what I needed. Bob