资深专家进,javascript中ie生成空格问题?

来源:百度知道 编辑:UC知道 时间:2024/06/14 17:57:22
资深专家进,javascript中ie生成空格问题?

<body>
<input type=button value=寻找 onclick="alert('--'+document.body.childNodes[1].nodeValue+'--')">
</body>

我只想问第一个input后面ie会生成一个空格的#text文本节点,弹出来的是(-- --)

我用ie dom tree看过了,代码是:

<BODY><INPUT onclick="alert('--'+document.body.childNodes[1].nodeValue+'--')" type=button value=寻找> </BODY>

这个ie生成的文本节点的空格不是html的 如果是的话,第一个input后面应该是 

也不是全拼全角的空格,如果是的话,应该是 口口 这样的空格;

也不是键盘的空格,因为键盘的空格不能作为一个空文本节点,

到底这个ie生成的文本节点的空格是什么形式的空格,请详细指教指教!

有人说是全拼里面的(像月亮的半角空格),我在input后面敲了一个全拼里面的(像月亮的半角空格)发现并不会增加到#text文本节点里面去,

可以证明,半角空格根本就不能作为一个文本节点.ie生成的空文本节点的这个空格不会是半角空格,绝对不可能.

不知道ie生成的空文本节点空格到底是什么形式的空格?

查了ie dom tree还是<BODY><INPUT onclick="alert('--'+document.body.childNodes[1].nodeValue+'--')" type=button value=寻找&g

若不是PRE标签的作用,IE浏览器会把连续的空白字符解析成一个空格,而PRE则会按原输入的格式进行输出。而在你的文件中我看到了在<input>后与</body>之间的确存在着一个空格。而body的节点数组也是从0开始的,如果你想取出input的value值时应该使用的是childNodes[0]才可以,而1则是第二个节点的。我不知道你是否是有意这样用的。而空白字符当然会被解析成一个TEXT的节点,而文本节点是没有NodeValue的,所以在内部有一个内定的名字#text的原因!

空白字符指的不单单是空格,含有类似于LF,CR,TAB之类的都是!所以事实上你生成了第二个文本节点的!而你无疑是回车前后有空格等引起的!

我认为对于空格会被解析,这不是一个很大的问题,更没有必要去深究的!便你还是一个很细心的人,再敲一个空格去试验,没有必要的,因为边疆的多个空格会被解析成一个空格,这是你加不上的原因!

正如某一个哥们,在源码中一个劲地敲空格,想利用空格去排版内容,却发现无论敲了多少都不会达到他的要求。这时我提示他用 得到解决的。

DOM的细节与HTML还是密切相关的。

在IE的HTML里,所有的连续空白(回车,半角字符,制表符)都算是一个空白符。并且是绝对。
<input>
<input>
这两个input之间就会有空白。除非你写到一行去。
<input><input>

你下个CodeConvert
把这个生成的空格复制进去
看下它的Unicode是什么
再去Unicode的表里查~

换行符
不过记得ie是会忽略换行符的,而其他浏览器会把换行符当作文本节点。