如何在不使用无窗口的情况下使jQuery对话框显示在Silverlight之上



我在一个web应用程序中使用jQuery对话框,该应用程序在多个页面上使用Silverlight。当对话框出现在带有SL窗口的页面上时,对话框隐藏在SL后面。我不能使用无窗口模式有什么直接的方法可以让这个对话框出现在SL面前吗?

您始终可以创建与对话框大小相同的浮动div。它将在silverlight插件之上。当对话框关闭时,您还需要代码来关闭div。

该对话框将是div的一部分,然后在其上方的silverlight上浮动。

使用iframe似乎可以很好地工作,类似于您对浮动div的解释。

它可能需要调整,但希望这能帮助其他人。

在你的页面上,包括一个这样的iframe:

<div id="popupDiv" style="display: none">
    popup contents...
</div>
<iframe id='popupSupporter-iframe' tabindex='-1' frameborder='0' style='display: block;
    position: absolute; z-index: -1; border: 0px none transparent; opacity: 0; top: auto;
    left: auto; width: auto; height: auto;'></iframe>

在您声明对话框的脚本部分:

$('#popupDiv').dialog({
    open: function (event, ui) {
        var myDialogIFrame = $('#popupSupporter-iframe');
        var myDialog = $('#popupDiv').dialog("widget");
        myDialogIFrame.css("z-index", "10");
        var left = myDialog.offset().left + 'px';
        var top = myDialog.offset().top + 'px';
        var height = (myDialog.height() + 15) + 'px';
        var width = (myDialog.width() + 15) + 'px';
        $(myDialogIFrame).css("left", left).css("top", top).css("height", height).css("width", width);
    },
    close: function (event, ui) {
        $('#popupSupporter-iframe').css("z-index", "-1");
    }
});

为silverlight应用程序设置以下背景和无窗口属性值对我有效:)

<param name="background" value="transparent" /> 
<param name="windowless" value="true" />

最新更新