Javascript 使XUL对话框窗口在不显示时显示滚动';我不适合屏幕
我正在构建一个在Xulrunner(23版)上运行的独立Win应用程序。在应用程序中,我需要打开一个模式对话框,该对话框略大于客户端的典型屏幕高度(1024)。在更大的屏幕上,我希望显示完整的模式窗口大小。而在较小的屏幕上,所有内容都应该可以通过滚动垂直滚动条来访问 在这种情况下,总结模态窗口的理想行为是: A.它将打开以垂直和水平放置所有内容。但是 B.如果不适合可见区域,则应在边界处停止,并在轴上显示不适合屏幕的滚动条 为了实现这一目标,我尝试了以下方法:Javascript 使XUL对话框窗口在不显示时显示滚动';我不适合屏幕,javascript,modal-dialog,firefox-addon,xul,xulrunner,Javascript,Modal Dialog,Firefox Addon,Xul,Xulrunner,我正在构建一个在Xulrunner(23版)上运行的独立Win应用程序。在应用程序中,我需要打开一个模式对话框,该对话框略大于客户端的典型屏幕高度(1024)。在更大的屏幕上,我希望显示完整的模式窗口大小。而在较小的屏幕上,所有内容都应该可以通过滚动垂直滚动条来访问 在这种情况下,总结模态窗口的理想行为是: A.它将打开以垂直和水平放置所有内容。但是 B.如果不适合可见区域,则应在边界处停止,并在轴上显示不适合屏幕的滚动条 为了实现这一目标,我尝试了以下方法: 将“scrollbars=yes”
“scrollbars=yes”
添加到调用的strWindowFeatures
参数中。这似乎一点效果都没有。这样做违反了要求Bstyle=“overflow:auto”
。当对话框超出屏幕时,新窗口将显示滚动条。但是屏幕的边框和底部的任务栏不太合适。它在屏幕底部边缘以下的几个像素处结束。如图所示:- 堆栈溢出:
- Ohloh:(参见功能
尺寸
)。根据评论,它试图解决我的问题。我没有太多的运气通过修改代码样本来解决这个问题
- Bugzilla:在Firefox中
我仍在寻找解决方案或解决办法。如有任何想法或建议,将不胜感激 我最初的想法:您对此有何看法:在“调整大小”事件中,如果大小超出屏幕高度,请将其调整为屏幕高度,然后启用滚动条。也可以调用windows Center WindowOn screen功能,但我不确定它是否会调整窗口大小以保持在屏幕内,可能只是将其居中,如功能所示: 感谢@SergeyAvdeev:
window.addEventListener('resize', function(event) {
// If the window is too large resize it to fit the available screen
var outer = windowOuter(),
avail = available();
if (outer.x > avail.x || outer.y > avail.y) {
window.resizeTo(Math.min(outer.x, avail.x), Math.min(outer.y, avail.y));
}
}, true);
我最初的想法是:在调整大小事件中,如果大小超出屏幕高度,请将其调整为屏幕高度,然后启用滚动条。也可以调用windows
centerWindowOnScreen
函数,但我不确定它是否会调整窗口大小以保持在屏幕内,可能只是按照函数所述将其居中。@Noitidart,正如您建议的那样,我尝试了以下操作:window.addEventListener('resize',函数(事件){//如果窗口太大,请调整其大小以适应可用屏幕…},对);
并且它工作正常酷男:)我会将其移到解决方案:)'Hey@SergeyAvdeev非常感谢您在该示例中进行编辑。再加上对您的重复。我在中编辑了它。我不知道人们为什么拒绝您的编辑。