我注意到Office.js dialogAPI有問題的行爲。Office.js對話框API和多DPI顯示
事實上,我使用兩臺顯示器,一臺是具有250%變焦的高DPI(3840 * 2160)。第二個是1920 * 1080(變焦100%)。
如果在監視器1中設置了Office,並且如果打開對話框API(讓我們說80%的默認值),則使用兩個監視器的擴展來計算對話框的大小。因此,對話窗口變得巨大,跨越兩個顯示器,不能在不調整大小的情況下使用。
我注意到Office.js dialogAPI有問題的行爲。Office.js對話框API和多DPI顯示
事實上,我使用兩臺顯示器,一臺是具有250%變焦的高DPI(3840 * 2160)。第二個是1920 * 1080(變焦100%)。
如果在監視器1中設置了Office,並且如果打開對話框API(讓我們說80%的默認值),則使用兩個監視器的擴展來計算對話框的大小。因此,對話窗口變得巨大,跨越兩個顯示器,不能在不調整大小的情況下使用。
謝謝你Benoit。是的,這是我們知道並且正在跟進的問題。
您可以嘗試在OfficeHelpers.js中使用對話助手。它包含在位於此處的v0.5.0中(https://unpkg.com/@microsoft/[email protected]/dist/office.helpers.js)。
對話助手允許以像素爲單位指定寬度和高度,而不是百分比,我們在內部計算百分比並進行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',
}
});
我會看看,謝謝 –
謝謝Humberto ...我將測試@WrathOfZombies解決方法並查看誰將獲得接受的答案。如果有效,我將不得不在漏洞確認和解決方法之間進行選擇... –