我在一个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" />