Interprets space/tab/newline as text

VERIFIED DUPLICATE of bug 26179

Status

()

Core
DOM: Core & HTML
P3
normal
VERIFIED DUPLICATE of bug 26179
18 years ago
10 years ago

People

(Reporter: esigra, Assigned: jst)

Tracking

Trunk
x86
Linux
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

18 years ago
Hi,
Here is a testcase document that works as intended (try it):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/strict.dtd">
<html>
  <head>
    <title>
      Foo
    </title>
    <script type="text/javascript"><!--
      function toggle(caller) {
        target = caller.nextSibling
        //alert("\"" + target.getAttribute("style") + "\"")
        if (target.getAttribute("style") == "display: none; ") {
          target.setAttribute("style", "display: block; ")
        }
        else {target.setAttribute("style", "display: none; ")}
      }
    //--></script>
  </head>
  <body>
    <div onclick="toggle(this)">Bar</div><div>Fyr</div>
  </body>
</html>

The problem arises when I put space(s)/tab(s)/newline(s) between the divs. Then
Mozilla interprets it as a text node between the divs, which I believe is wrong.
(An extra .nextSibling will make it work again.)

As opposed to Mozilla, Konqueror's DOM implementation correctly ignores any
spaces/tabs/newlines between elements.

Comment 1

18 years ago
The DOM spec does not specify behavior for anonymous text nodes (what this white
space is).  For the <pre> element in HTML white space must be preserved.  HTML4
describes rendering of white space here:
http://www.w3.org/TR/html4/struct/text.html#whitespace

If this bug is valid it is probably a dup, I'm leaving it unconfirmed, but it is
probably invalid.
(Reporter)

Comment 2

18 years ago
According to the example at
<http://www.webreference.com/js/column40/analyzesimple.html> (see also the tree
structure image linked from there), whitespace should not be interpreted as
nodes, so it sure looks like a Mozilla bug.
I think www.webreference.com is making some unwarranted assumptions.  The spec
does not prescribe what happens to the whitespace.  Furthermore, if we take
their example (which has a <p id="p2node">   </p> node) and apply the style
#p2node { white-space: pre } then suddenly the spaces need to be displayed and
there has to be a text node for those spaces.

Whether the node is created when the white-space:pre style is applied or when
the DOM tree is first created is not specified by the DOM spec and is an
implementation detail that you should not depend on.
(Reporter)

Comment 4

18 years ago
You think of the whitespace <b>within</b> the p called p2node. I was more
concerned with the whitespace <b>between</b> the p nodes called p2node and
p3node. In this case it is a newline, and it could also include some kind of
indentation.

In this case, my common sense agrees with www.webreference.com's and Konqueror's
assumptions.

Comment 5

18 years ago
So what are we doing with this bug? I would like to get it off our Unconfirmed radar

Comment 6

18 years ago
Adding Master Spec to the CC list.

Comment 7

18 years ago
I am marking this NEW so someone with more knowledge of the specs then I do can
either fix this or mark this WONTFIX.
Status: UNCONFIRMED → NEW
Ever confirmed: true
(Assignee)

Comment 8

18 years ago
This is a tricky one, mozilla and Mac IE preserves all whitespace and IE >5.0
and Konqueror looses whitespace between tags, so I'm not sure what the best
thing to do here is. Either way, this is a dup of bug 26179.

*** This bug has been marked as a duplicate of 26179 ***
Status: NEW → RESOLVED
Last Resolved: 18 years ago
Resolution: --- → DUPLICATE
Status: RESOLVED → VERIFIED
Component: DOM Level 1 → DOM Core
yeah

Updated

10 years ago
Component: DOM: Core → DOM: Core & HTML
QA Contact: jcarpenter0524 → general
You need to log in before you can comment on or make changes to this bug.