使用iframe的Jquery对话框在IE9中不起作用

时间:2012-05-07 17:11:23

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

在IE9中没有使用iframe的Jquery对话框。

我的parent.aspx上有一个HTML按钮

<input type="button" id="btnMessageFilter" class="mainFont" value="Message Filter"/>

在“btnMessageFilter”上单击,我想在Jquery对话框中打开另一个aspx页面(child.aspx);我是这样做的:

$(document).ready(function () {
    $("#btnMessageFilter").live('click', function () {
        var iframe = $("<iframe>").attr({
            "src": "MessageFilter.aspx?btn=btnRefresh",
            "height": "100%",
            "marginwidth": "0",
            "marginheight": "0",
            "scrolling": "auto",
            "frameborder": "0"
        });
        $("#dialog2").empty().append(iframe);
        $("#dialog2").dialog({
            modal: true,
            title: 'Message Filter',
            width: 400,
            height: 450
        });
        $("#dialog2").parent().appendTo('form');
        return false;
    });
});      

除IE9外,代码工作正常。有关修复上述鳕鱼的建议或在Jquery Dialog中打开另一个aspx的替代方法吗?

2 个答案:

答案 0 :(得分:3)

我不确定您的代码有什么问题。但我在我的网站的某些页面上使用iframes + jQuery-ui对话框,如下所示:

var iframe = $('<iframe frameborder="0" marginwidth="0" marginheight="0" allowfullscreen></iframe>');
var dialog = $("<div></div>").append(iframe).appendTo("body").dialog({
    autoOpen: false, // autoopen is set to false (we'll create only one dialog and open it on-demand)
    modal: true,
    resizable: false,
    width: "auto",  // set width and
    height: "auto", // height to auto (we'll set width/height on the content)
    close: function() {
        iframe.attr("src", ""); // load blank document in iframe
                                // can be useful in situations, for example,
                                // when your frame is playing audio or video
    }
});
$('#btnMessageFilter').click(function() {
    iframe.attr("width", 400).attr("height", 200); // set width/height on the content
    dialog.dialog("option", "title", "Message Filter").dialog("open");
    iframe.attr("src", "http://example.com");
});

Demo here

答案 1 :(得分:0)

我正在回复此帖子,因为我还没找到解决此问题的正确方法。

要解决此问题,请确保在操作结束时设置“iframe src”。

示例 - 在上述情况下,必须在.dialog()调用之后设置src。