W3C home > Mailing lists > Public > www-validator@w3.org > January 2005

Re: [VE][64] Error Message Feedback

From: Jukka K. Korpela <jkorpela@cs.tut.fi>
Date: Sun, 30 Jan 2005 11:18:31 +0200 (EET)
To: DjMafia <barrerad@gye.satnet.net>
Cc: www-validator@w3.org
Message-ID: <Pine.GSO.4.58.0501301056090.29582@korppi.cs.tut.fi>

On Sun, 30 Jan 2005, DjMafia wrote:

> <script type="text/javascript"> if (!chatterbox || chatterbox != 'ok') {
> var txt = "This <a href="http://chatter.flooble.com/">flooble
> chatterbox</a> is"

Quick answer: put all script code into an external file that you refer to
via a src attribute in a script element. Alternatively, unless you have
some particular reason to use XHTML, switch to HTML, where the problem
is smaller (you only need to worry about things like </a>, which you
can write as <\/a> in JavaScript).

In XHTML, which you seem to be using, a script element's content is
#PCDATA (parsed character data), and hence e.g. "<a" is interpreted as
starting an element (but no elements are allowed inside a script element).

In principle, you could replace any occurrence of "<" inside a
script element by "&lt;". This would be fine as far as XHTML is concerned.
But this would not be practical, since Internet Explorer does not actually
"do XHTML" but e.g. interprets the content of a script element by
classic HTML rules (to the extent it plays by any rules).

Here's a tricky way of dealing with the problem if the use of an external
script file is for some reason excluded: In your Javascript code, define a
variable (effectively a constant) with "<" as its value, without using the
"<" as itself of course, e.g.
  var lt = '\x3c';
Then use this variable instead of the "<" character inside the script.
You cannot use a variable inside a quoted string, so you need to split
strings e.g. as follows:
  var txt = 'This ' + lt + 'a href="http://chatter.flooble.com/">flooble '
          + 'chatterbox' + lt + '/a is';

Note that the validator's FAQ entry
is partly dated since it refers to
which is a simple and understandable explanation but only applies to HTML,
where the problem is more limited.

> I would really appreciate a quick answer for this problem... deadline is
> February 2... please...

_Especially_ if you need quick help, you should post the URL of the page
in your message. It is generally more useful than anything else
in identifying the problem.

Jukka "Yucca" Korpela, http://www.cs.tut.fi/~jkorpela/
Received on Sunday, 30 January 2005 09:19:05 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:30:47 UTC