如何在不使用无窗口的情况下使一个jQuery对话框出现在Silverlight上方

时间:2012-08-29 14:25:05

标签: silverlight jquery-ui

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

3 个答案:

答案 0 :(得分:0)

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

对话框将成为div的一部分,然后漂浮在银光之上。

答案 1 :(得分:0)

使用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");
    }
});

答案 2 :(得分:0)

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

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