1

我制作 innerHTML 来获取数据并将其存储在数据库中。当我在 Firefox 中尝试使用引号(“或')作为属性时,它是正确的。但在 IE 中,我没有得到属性的引号(”或')。这是浏览器的问题吗?对此的任何答案。

谢谢

4

2 回答 2

2

是的,这是一个浏览器问题,这就是 IE 的做法。请注意,引号对于 HTML 中的所有属性不是强制性的,因此不会使 IE 的输出无效。如果您想要 XHTML,您必须自己通过遍历 DOM 来创建它。

于 2010-04-28T09:22:13.080 回答
1

是的。使用innerHTML时,浏览器会根据 DOM 元素和元素中的属性重新创建 HTML。不同的浏览器这样做的方式不同,因为直到最近还没有标准(innerHTML这是微软的一项创新,几乎被其他所有人采用,并且正在HTML5中标准化)。如果您的标记如下所示:

<span style="color: red" id="foo">...</span>

IEinnerHTML将是:

<SPAN id=foo style="COLOR: red">...</SPAN>

...而 Firefox 和 Chrome 与您的原始版本非常接近。

IE 为您提供的是有效的 HTML(您可以省略其中没有空格的属性的引号,并且大写标记名也可以),但不是有效的 XHTML(如果这对您正在做的事情很重要) )。

如果您愿意,可以通过自己遍历 DOM 树或对 IE 的结果进行后处理来构建自己的 (X)HTML 字符串。

好消息是,现在它innerHTML正在标准化,并且标准清楚地表明结果应该是 XML 文档(XHTML 文档就是)中的有效 XML,并且由于微软比他们更专注于该领域的标准'已经好几年了,IE9在这方面可能会做得更好。

于 2010-04-28T09:30:31.043 回答