Теперь надстройки Office используют новый WebView на основе Edge вместо IE 11. Мой кусок кода перестает работать после этого обновления. Я просто пытаюсь скачать файл здесь. Этот код работает правильно, если я использую его в любых браузерах. Но приложения Office, такие как Excel или Word, используют версию Microsoft Edge для WebView. Отладка покажет мне, что функция window.navigator.msSaveOrOpenBlob в этом случае не определена. Пожалуйста, помогите мне исправить это.
Я пытаюсь найти любую документацию по этому вопросу, но безуспешно.
function ClickFunc() {
var blob = new Blob(['Some Byte Array'], { type: 'application/txt' });
//output file name
var fileName = "test.txt";
//detect whether the browser is IE/Edge or another browser
//
//ERROR: In Edge WebView window.navigator.msSaveOrOpenBlob is undefined.
//
if (window.navigator && window.navigator.msSaveOrOpenBlob)
{
//To IE or Edge browser, using msSaveorOpenBlob method to download file.
window.navigator.msSaveOrOpenBlob(blob, fileName);
} else {
//To another browser, create a tag to downlad file.
//This part of code for browsers other than IE & Edge.
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
document.body.appendChild(a);
a.setAttribute('style', 'display: none');
a.href = url;
a.download = fileName;
a.click();
window.URL.revokeObjectURL(url);
a.remove();
}
}
//I use this code in HTML to call function
<button onclick="ClickFunc()">Click me</button>
window.navigator.msSaveOrOpenBlob не определен, когда он используется в WebView Microsoft Edge.