Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Office js Office.js对话框API和具有高DPI的多个显示器_Office Js_Office Addins_Outlook Web Addins - Fatal编程技术网

Office js Office.js对话框API和具有高DPI的多个显示器

Office js Office.js对话框API和具有高DPI的多个显示器,office-js,office-addins,outlook-web-addins,Office Js,Office Addins,Outlook Web Addins,我注意到Office.js的一个有问题的行为 事实上,我使用了两个监视器,一个是高DPI(3840*2160),具有250%的缩放。第二个是1920*1080(缩放100%) 如果在监视器1中设置了Office,并且我打开了dialogAPI(假设使用80%的默认值),则使用两个监视器的扩展来计算对话框的大小。因此,对话框窗口变得巨大,横跨两个显示器,不调整大小就无法使用。谢谢Benoit。是的,这是我们意识到的问题,目前正在跟进 能否尝试使用OfficeHelpers.js中的对话框帮助程序。

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

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


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

谢谢Benoit。是的,这是我们意识到的问题,目前正在跟进

能否尝试使用OfficeHelpers.js中的对话框帮助程序。它包含在v0.5.0中,位于此处()

dialog helper允许以像素为单位指定宽度和高度,而不是百分比,我们在内部计算百分比并进行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',
    }
});
(函数(){
$(文档).ready(函数(){
Office.initialize=函数(){
//指定HTTPS url以及宽度和高度(以像素为单位)。
//第四个参数是切换到使用Microsoft团队对话框。
var dialog=新的OfficeHelpers.dialog(“”、1024、768);
dialog.result.then(函数(值){
console.log(值);
}).catch(函数(错误){
OfficeHelpers.Utilities.log(错误);
});            
}
});
})();
//对话框中的某些位置
OfficeHelpers.Dialog.close({
答:1,,
阿尔法:2,
“meao”:“猫”,
b:{
答:1,,
阿尔法:2,
“meao”:“猫”,
}
});

谢谢你,亨伯托。。。我将测试@WrathOfZombies解决方案,看看谁会得到公认的答案。如果它工作,我将不得不在错误确认和解决方法之间做出选择。。。