2011-02-02 135 views
0

我有一个带有XHTML标记的页面,也正确地用作XHTML。有一个链接,如果点击打开一个jQuery UI对话框,并在对话框中加载另一个XHTML页面的内容。为什么我不能在XHTML页面的对话框中打开XHTML内容?

问题是内容没有加载到对话窗口内。

解决此问题的方法是通过以HTML(text/html mime类型)的形式提供主要的XHTML页面(从中打开对话框)。

这是为什么?为什么不能正确使用XHTML?

这里是我的代码:

function openDialogByUri(div, uri, title, width, height, buttonsArray) { 
    div.dialog({ 
     title: title, 
     width: width, 
     height: height, 
     position: 'middle', 
     resizable: false, 
     buttons: buttonsArray 
    }); 
    $.ajax({ 
     url: uri, 
     success: function(response) { 
      div.html(response); 
     }, 
     error: function(response) { 
      alert(response); 
     } 
    }); 
} 

回答

1

你说的XHTML网页加载到对话框。

作为一个有效的XHTML网站,还包括一个doctype和<html><head>标签,将它们放置在您的对话框中另一个XHTML页面内的XHTML无效。

您将不得不使用或<object>或仅将有效的XHTML主体内容添加到jQuery-UI对话框中。

为什么这个工作,如果外部HTML不是XHTML完全取决于浏览器的解析。这在浏览器中可能不一致。

HTML可能会以另一种方式解析,允许更多的语法错误,可能会删除或忽略内部元素和内部元素。

相关问题