我们可以将AJAX用于XHTML吗?

时间:2012-07-27 08:49:44

标签: javascript ajax xhtml

我们可以使用AJAX更新XHTML页面吗? 要连接html页面,我们曾经写过:

   xhr.onreadystatechange = function(){
        if(xhr.readyState == 4){
            document.getElementById("target").innerHTML=xhr.responseText;
        }
    }

但是,我们无法将innerHTML更改为innerXHTML,因为AJAX不接受它。

3 个答案:

答案 0 :(得分:3)

是的,您可以使用ajax更新XHTML页面。您仍然使用innerHTML(或DOM方法)。 HTML5规范中innerHTML的描述描述了应如何处理XML与HTML。

重新使用各种DOM方法,一些阅读/参考资料:

答案 1 :(得分:1)

我的第一个想法是“当然!”。作为T.J. Crowder指出,符合标准的浏览器follow the spec应该没有问题。

然而,在旧版IE中使用innerHTML并维护格式良好的XHTML标记似乎存在一些问题。

请记住,这是旧信息。它可能不再是一个问题。

http://www.stainlessvision.com/jquery-html-vs-innerxhtml(使用innerHTML) http://www.stevetucker.co.uk/page-innerxhtml.php

我的经验恰恰相反,即使用innerHTML插入标记而不是是一个问题。

AJAX片段在这里真的无关紧要;问题是,是否可以信任innerHTML来保持插入到文档中的标记的完整性。

答案 2 :(得分:0)

在我的个人资料中链接的网站完全由XHTML提供,作为实际的XHTML,application / xhtml + xml。单击右上角的“站点选项”将在示例中通过AJAX加载内容。

  • 代码不是文本,不要使用responseText,请使用responseXML。
  • 永远不要使用innerHTML,它是一种与DOM不兼容的专有Microsoft JScript方法。使用它会给你的代码增加大量的歧义,JavaScript可能会看到你通过AJAX加载的元素,但可能不会。
  • 使用importNode,这是两个不同的文档所有者,您必须使用importNode来加载来自不同文档的内容。