JavaScript - IE6 (SP1) throws errors on Microsoft's own page!

P

Philip Herlihy

I get more JS errors than I'd expect, on a wide range of sites. (It's
possible I only know this because the Debug is set on).

I found an error on a Microsoft site, and decided to investigate. I traced
it to this line:
document.all("characterCount").innerText = commentTextLength;

This is on a page deep inside a secure ordering sequence, so it's probably
not
worth copying the URL here.

According to my crib-sheet, "document.all" is only valid in the javascript
of IE4 and later. My browser is IE6 (SP1) which qualifies, but the
javascript I have doesn't like it. I also have other browsers and
Frontpage 2002 installed.

Any ideas? I do seem to see a lot of javascript errors, and not just my
own!

Here are the first lines of Javascript on the page, including the offending
line, marked with an added comment (//###....) on the line before:

------------------------------------

script src="/OMLibrary/script/functionsICS.js"
language="javascript"></script>
<!-- /common head -->
<SCRIPT LANGUAGE="javascript">
<!--
//---------------------------------------------------------
// this function counts up the text in the comment area and
// displays it on the page
//---------------------------------------------------------
function countText()
{
var commentText = document.forms.frmFeedback.commentArea.value;
var commentTextLength = 0;
commentTextLength = commentText.length;
//### marker comment added by OP - see next line ###
document.all("characterCount").innerText = commentTextLength;
if (commentTextLength > 1000)
{
alert('Please limit your comments to 1000 characters.');
document.forms.frmFeedback.commentArea.value =
commentText.substring(0,1000);
countText();
}
return true;
}
 
P

Philip Herlihy

Roland Hall wrote (in microsoft.public.intexplorer.scripting):
....
The reason is document.all is trying to reference the element by ID,
not name. So, to make it work, you need to add an ID to the SPAN.


That's it! Here's the original form code:

<td>
<textarea cols="50" rows="5" style="width:420px;"
onKeyUp="countText()" id="commentArea" name="sFeedbackComment"></textarea>
</td>

And the offending line from function CountText():

document.all("characterCount").innerText = commentTextLength;
Should be:
document.all("commentArea").innerText = commentTextLength;

The error was "document.all("...") is null or not an object. So it's just a
programming error, not something wrong with my setup.
 

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,755
Messages
2,569,536
Members
45,014
Latest member
BiancaFix3

Latest Threads

Top