By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,528 Members | 1,330 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,528 IT Pros & Developers. It's quick & easy.

Guidance Request (and a specific question)

P: n/a
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

Jun 27 '08 #1
Share this Question
Share on Google+
2 Replies


P: n/a
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/
Jun 27 '08 #2

P: n/a

"Martin Honnen" <ma*******@yahoo.dewrote in message
news:48**********************@newsspool1.arcor-online.net...
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/
Thank you VERY much Martin! That's exactly what I needed. Bob
Jun 27 '08 #3

This discussion thread is closed

Replies have been disabled for this discussion.