使用JQuery UI模式对话框在IE8中混合内容警告

时间:2011-04-28 16:27:52

标签: jquery jquery-ui internet-explorer-8 modal-dialog

我正在使用JQueryUI的Dialog作为模态窗口,并使用此处概述的方法将另一个页面加载到模态窗口中:http://blog.nemikor.com/2009/08/07/creating-dialogs-on-demand/

时,所产生的模态窗口(见下面我的代码),它在Firefox的伟大工程,但在IE8,我得到了可怕的混合内容的警告(该网站正在通过HTTPS服了,我在Firebug显示所有检查一切都有相对的路径,并且都来自与生成模态的页面相同的网站。更令人沮丧的是混合内容警告,你应该能够回答'不'给IE给你的提示,然后它应该加载混合内容 - 但我得到的是一个空白的模态窗口也奇怪不转覆盖区域透明,即使不产生模态(模态内容是一个隐藏的DIV在同一页上)。在同一网站上,在IE中工作得很好,并使用透明覆盖创建模态。

我正在使用JQuery 1.4.2和JQueryUI 1.8.2,下面是我的模态窗口代码以及基于点击的href获取内容的代码。

$('.actionlink').each(function() {
    var $dialog = $('<div></div>');
    var $link = $(this).one('click', function() {
        $dialog
        .load($link.attr('href') + ' #modalWrapper')
        .dialog({
            resizable: false,
            modal: true,
            //autoOpen: false,
            title: 'Printable Action Items',
            width: 700,
            height: 'auto',
            buttons: {
                "Close": function() {
                    $(this).dialog("close");
                }
            }
        });

    $link.click(function() {
        $dialog.dialog('open');

        return false;
        });
        return false;
    });
});

这是提供插入模态窗口的页面的href:

<a href="https://#cgi.server_name#/matters/viewprintableactions.cfm?matterid=#matterid#&asserter=#urlencodedformat(asserter)#" class="actionlink"><img src="/images/page_alert.png" width="16" height="16" border="0"></a>

这样做的原因是页面上可能存在这样的多个链接,我需要为每个链接提供一个模态,但是要做一个单独的查询来获取模态的信息(因此为什么它是在另一页)。我们也无法更改用户的浏览器设置以允许混合内容并避免这种情况(我希望)。

任何有意见或能看到问题的人都非常感谢!

1 个答案:

答案 0 :(得分:1)

您确定整个生成的文档中的每个引用都是相对/ https吗?不只是#modalWrapper元素中的部分,而是整个事物。正如在this thread中调查的那样,load()函数在应用选择器之前将通过ajax返回的整个页面加载到documentFragment中,这意味着整个文档必须经过浏览器的安全处理。