我有一个XHTML标记的页面也正确地用作XHTML。有一个链接,如果点击打开一个jquery ui对话框,并在对话框中加载来自另一个XHTML页面的内容。
问题是内容未加载到对话框窗口中。
解决此问题的方法是将主XHTML页面(打开对话框的页面)作为HTML(text / html mime类型)提供。
为什么?为什么它不适用于正确服务的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);
}
});
}
答案 0 :(得分:1)
您说XHTML网页已加载到对话框中。
由于有效的XHTML网站还包含文档类型,<html>
和<head>
标记将它们放置在对话框中XHTML内的其他XHTML页面无效。
您必须使用<iframe>
或<object>
或仅将有效的XHTML正文内容添加到您的jQuery-UI对话框中。
如果外部HTML不是XHTML,为什么这会起作用完全取决于浏览器的解析。这可能在浏览器中不一致。
HTML可以用另一种方式解析,允许更多的语法错误,可能会删除或忽略内部html
和head
元素。