我制作 innerHTML 来获取数据并将其存储在数据库中。当我在 Firefox 中尝试使用引号(“或')作为属性时,它是正确的。但在 IE 中,我没有得到属性的引号(”或')。这是浏览器的问题吗?对此的任何答案。
谢谢
我制作 innerHTML 来获取数据并将其存储在数据库中。当我在 Firefox 中尝试使用引号(“或')作为属性时,它是正确的。但在 IE 中,我没有得到属性的引号(”或')。这是浏览器的问题吗?对此的任何答案。
谢谢
是的,这是一个浏览器问题,这就是 IE 的做法。请注意,引号对于 HTML 中的所有属性不是强制性的,因此不会使 IE 的输出无效。如果您想要 XHTML,您必须自己通过遍历 DOM 来创建它。
是的。使用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在这方面可能会做得更好。