0

我们可以使用 AJAX 来更新 XHTML 页面吗?为了连接html页面,我们曾经这样写:

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

但是,我们不能更改innerHTMLinnerXHTML,因为 AJAX 不接受它。

4

3 回答 3

3

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

关于各种 DOM 方法,一些阅读/参考资料:

于 2012-07-27T08:51:16.077 回答
1

我的第一个想法是“当然!”。正如 TJ Crowder 指出的那样,遵循规范的标准浏览器应该没有问题。

但是,似乎确实有人在谈论在旧版本的 IE 中使用 innerHTML 和维护格式良好的 XHTML 标记的一些问题。

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

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

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

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

于 2012-07-27T08:58:53.200 回答
0

我的个人资料中链接的站点完全以 XHTML 的形式提供,即实际的 XHTML、application/xhtml+xml。例如,单击右上角的“站点选项”将通过 AJAX 加载内容。

  • 代码不是文本,不要使用 responseText,使用 responseXML。
  • 永远不要使用 innerHTML,它是一种与 DOM 不兼容的专有 Microsoft JScript 方法。使用它会给您的代码添加大量的歧义,JavaScript 可能会看到您通过 AJAX 加载的元素,但可能不会。
  • 像我一样使用 importNode,这是两个不同的文档所有者,您必须使用 importNode 从不同的文档中加载内容。
于 2012-07-30T19:29:37.813 回答