为什么我不能在XHTML页面内的对话框中打开XHTML内容?

时间:2011-02-02 10:52:29

标签: javascript jquery jquery-ui jquery-ui-dialog

我有一个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);
        }
    });
}

1 个答案:

答案 0 :(得分:1)

您说XHTML网页已加载到对话框中。

由于有效的XHTML网站还包含文档类型,<html><head>标记将它们放置在对话框中XHTML内的其他XHTML页面无效。

您必须使用<iframe><object>或仅将有效的XHTML正文内容添加到您的jQuery-UI对话框中。

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

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