1

我注意到 Office.js dialogAPI的一个有问题的行为。

事实上,我使用了两台显示器,一台是具有 250% 缩放的高 DPI (3840*2160)。第二个是 1920*1080(缩放 100%)。

如果在监视器 1 中设置了 Office,并且我打开了 dialogAPI(假设使用 80% 的默认值),则使用两个监视器的扩展名计算对话框的大小。因此,对话框窗口变得巨大,跨越两个显示器,并且在不调整大小的情况下无法使用。

4

2 回答 2

1

谢谢伯努瓦。是的,这是我们知道的一个问题,目前正在跟进。

于 2017-01-30T18:53:43.930 回答
1

您能否尝试使用 OfficeHelpers.js 中的 Dialog 助手。它包含在位于此处 ( https://unpkg.com/@microsoft/office-js-helpers@0.5.0/dist/office.helpers.js ) 的 v0.5.0 中。

对话框助手允许以像素为单位指定宽度和高度,而不是百分比,我们在内部计算百分比并进行 DialogAPI 调用。

目前,它应该检测可用空间并创建具有您指定大小的对话框。也就是说,对话框采用生成它的窗口的大小。因此,如果您有两台显示器,一台是 4k,一台是 1280x720,并且您生成了一个 1920x1080 的对话框,它看起来会很大并且不会缩小以适应。这是目前的限制。

如果您遇到任何问题,请告诉我。这是示例代码:

(function () {
    $(document).ready(function () {
        Office.initialize = function () {
            // specify the HTTPS url and width and height in pixels.
            // the fourth parameter is to switch to using Microsoft Teams Dialog.

            var dialog = new OfficeHelpers.Dialog('<dialog url>', 1024, 768);
            dialog.result.then(function (value) {
                console.log(value);
            }).catch(function (error) {
                OfficeHelpers.Utilities.log(error);
            });            
        }
    });
})();

// Some where in the Dialog
OfficeHelpers.Dialog.close({
    a: 1,
    alpha: 2,
    'meao': 'cat',
    b: {
        a: 1,
        alpha: 2,
        'meao': 'cat',
    }
});
于 2017-01-30T19:49:58.530 回答