2012-07-27 164 views
0

我們可以使用AJAX更新XHTML頁面嗎? 要連接的HTML頁面,我們用來寫:我們可以使用AJAX和XHTML嗎?

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

然而,我們無法改變innerHTMLinnerXHTML,因爲AJAX不接受它。

+4

XHTML是'still'HTML;它只是強加一套關於如何呈現和編寫HTML的額外規則。無論你是否編寫了HTML或XHTML,innerHTML [或jQuery的html()]仍然適用。我把'still'放在引號中,你可能希望在這裏閱讀更多關於這個主題的內容:http://en.wikipedia.org/wiki/XHTML – dash 2012-07-27 08:51:42

+0

他們是一樣的! – ajtrichards 2012-07-27 08:52:34

回答

3

是的,您可以使用ajax更新XHTML頁面。您仍然使用innerHTML(或DOM方法)。 HTML5規範中描述的innerHTML描述瞭如何處理XML與HTML。

重新各種DOM方法,一些讀/基準物質:

+0

永遠不要使用innerHTML,它是一種專有的Microsoft JScript方法,與DOM不兼容。 – John 2012-07-30 19:26:22

+0

@John:所有主要(可能是所有次要的)瀏覽器都支持'innerHTML',與DOM兼容,並且包含在[latest規格](http://www.w3.org/TR/html5/embedded-內容0.html#DOM的innerHTML的)。就像Ajax和在同一個DOM元素上爲同一個事件創建多個事件處理程序的能力一樣,它最初是**微軟的創新。 (曾經有一段時間,微軟是網頁瀏覽器的創新者,這是很久以前的,而且太短暫了,但是很多。)這並不是壞事,也並不意味着你不應該用它。我敢肯定,前100萬個網站中有80%是這樣做的。 – 2012-07-30 20:30:18

+0

不會與你爭論,它不可靠,它不是一個標準(即使它是強大的武裝,不管標準組織是什麼,因爲它們都是由公司控制的),它與應用程序級編程不兼容。惰性代碼會產生次級結果,句點。 – John 2012-07-30 21:21:16

1

我的第一個想法是「當然!」。正如T.J. Crowder指出,符合標準的瀏覽器應該不會有問題。

但是,似乎在使用innerHTML和在較早版本的IE中維護格式良好的XHTML標記方面存在一些問題。

請記住,這是舊的信息。它可能不再是一個問題。

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

我的經驗是相反的,即使用對innerHTML插入標記是問題。

這裏的AJAX作品真的不相干;問題是innerHTML是否可信是爲了保留插入到文檔中的標記的完整性。

0

在我的個人資料中鏈接的我的網站完全以XHTML的形式提供,作爲實際的XHTML,application/xhtml + xml。點擊右上角的「網站選項」,將通過AJAX示例加載內容。

  • 代碼不是文本,不要使用responseText,請使用responseXML。
  • 永遠不會使用innerHTML,它是一種專有的Microsoft JScript方法,與DOM不兼容。使用它會給您的代碼添加大量的模糊內容,JavaScript可能會看到您通過AJAX加載的元素,但可能不會。
  • 使用importNode,因爲這是兩個不同的文檔所有者,您必須使用importNode從不同文檔加載內容。
相關問題