Office js 使用Office Online的对话框API设置对话框的恒定大小

Office js 使用Office Online的对话框API设置对话框的恒定大小,office-js,Office Js,是否有方法通过使用最小宽度/最大宽度CSS属性或其他方式为使用打开的对话框设置恒定大小?API只允许设置宽度和高度百分比,这使得在调整大小或使用不同分辨率时框看起来不一致(1024px的30%是一个瘦窗口,但在1920年看起来很好) 我注意到“Office加载项”存储弹出窗口似乎有一个最小宽度/最大宽度,因此在调整其大小时可以保持一致的外观,我希望我也可以利用它的功能。该库为对话框API提供了一个包装器,允许您设置像素尺寸。也许值得一试 编辑: 如果助手们不帮忙,我建议你去投票支持这个建议: 或

是否有方法通过使用最小宽度/最大宽度CSS属性或其他方式为使用打开的对话框设置恒定大小?API只允许设置宽度和高度百分比,这使得在调整大小或使用不同分辨率时框看起来不一致(1024px的30%是一个瘦窗口,但在1920年看起来很好)

我注意到“Office加载项”存储弹出窗口似乎有一个最小宽度/最大宽度,因此在调整其大小时可以保持一致的外观,我希望我也可以利用它的功能。

该库为对话框API提供了一个包装器,允许您设置像素尺寸。也许值得一试

编辑: 如果助手们不帮忙,我建议你去投票支持这个建议:

或者创建您自己的。

给您:

var dim = pixelToPercentage(700, 350);
Office.context.ui.displayDialogAsync(window.location.origin + "/pop-ups/create_export_link.html",
                { height: dim.height, width: dim.width },
                createExportLinkCallback);
支持功能是:

function pixelToPercentage(heightInPixel, widthInPixel) {
    var height = Math.floor(100 * heightInPixel / screen.height);
    var width = Math.floor(100 * widthInPixel / screen.width);
    return { height: height, width: width };
}

这样可以动态计算百分比格式的尺寸。

基于Alaa的答案,这对我(在pixelToPercentage函数中)更好地支持web和桌面:

var cheight = window.height? window.height : screen.height;
var cwidth = window.height? window.width : screen.width;
if (heightInPixel > cheight) heightInPixel = cheight;
if (widthInPixel > cwidth) widthInPixel = cwidth;
var height = Math.floor(100 * heightInPixel / cheight);
var width = Math.floor(100 * widthInPixel / cwidth);

谢谢,我试过了,但从内部看,office js helpers在调用dialog API时会将像素尺寸转换成一定的百分比,因此我们在调整大小时也会遇到同样的问题。这在桌面上很有效,而不是在线。看起来桌面实际使用了屏幕的一定百分比,而在线使用了浏览器窗口的一定百分比。因此,相同的代码不适用于这两种情况。在宽显示器(1440x3440)上非常明显。