我想知道是否有一种方法可以总是有一个特定的弹出窗口,如果它已经被打开,在你的web应用程序上使用javascript,我的意思是只在你自己的web应用程序上,把它放在所有东西的顶部将是滥用的,我肯定不能这样做,所以如果用户打开其他页面或浏览器,我的窗口可以在后台,但如果它是我的应用程序,它应该是活动的。
也许可以用window.focus()来完成,但问题是窗口是从一个aspx页面生成的,所以如果用户转到另一个aspx页面,即使我声明了一个全局变量,我也看不到有办法聚焦那个窗口,因为这个变量只对它所在的aspx网页是全局的。
谢谢你的帮助。
发布于 2015-05-05 09:32:43
你可能会想到Modal弹出窗口,这是一个弹出窗口,它可以“屏蔽”主页上的任何东西,只要它打开了。
有很多替代方案:http://www.sitepoint.com/14-jquery-modal-dialog-boxes/
但我建议使用bPopup,因为它非常轻量级且易于使用:http://dinbror.dk/bpopup/
显然,它们都需要jQuery。
然而,如果你真的只想要一个弹出窗口,你可以将它的z-index
值改为一个非常大的数字(比如9000,甚至‘超过9000')。
或者,为了确保弹出的z-index值是最大的,您可以使用此函数来查找页面上的最大z-index,然后遍历一次:
function maxZ() {
var maxZ = Math.max.apply(null,$.map($('body > *'), function(e,n){
if($(e).css('position')=='absolute')
return parseInt($(e).css('z-index'))||1 ;
})
);
return maxZ;
}
来源:http://www.sitepoint.com/jquery-find-highest-z-index-page/
注意,读取z索引的正确方法是$(e).css('z-index')
部件,您可以使用$(e).css('z-index', 9000)
设置它。
https://stackoverflow.com/questions/30048319
复制