Я попробовал то, что вы предложили в своем комментарии выше. Но все равно появляется то же сообщение, что и на картинке моего оригинального поста выше. Я добавил раздел ОБНОВЛЕНИЕ в посте выше, чтобы описать, что я пытался. Может я что то не так делаю - посоветуйте пожалуйста
е:
window.Open('')
или жеwindow.Open('about:blank')
работает с JavaScript в обычном HTML-файле, что можно проверитьВот, Но, похоже, он не работает в надстройке Office.js.
подробности:
На моемWindows 10 desktop
с участиемVS2017
я создалэто Надстройка Office.js WORD, которая отлично работает с моимMicrosoft Office Home and Student 2016
издание. В этом же проекте я создал новую кнопкуbtnTest
вhome.js
файл. Когда я нажимаюbtnTest
он успешно вызывает следующееMyTest
метод и открывает новое окно сwindow.Open('some URL')
.
Но в том жеMyTest
метод, когда я звонюwindow.Open('about:blank')
это не открываетпустая страница; вместо этого открывается окно сообщения Windows 10, показанное на скриншоте ниже.
Цель в том, что мой код создает строку HTML на основе некоторого содержимого изWORD document
а затем использоватьwindow.document.write(...)
метод для динамического открытия этого HTML в браузере, как объяснено (и вы можете проверить)Вот. Вопрос: Как я могу сделатьwindow.Open('about:blank')
метод работы?
function MyTest() {
Word.run(function (context) {
// window.open('https://www.google.com/'); this works
var myWindow = window.open('about:blank'); //this does not work and, instead, displays the default Windows 10 message shown in screenshot below
myWindow.document.write('<!DOCTYPE html><html><head></head><body><p>This is just a paragraph</p></body></html>');
// Synchronize the document state by executing the queued commands,
// and return a promise to indicate task completion.
return context.sync().then(function () {
//following (after un-commenting) does not work either
//var myWindow = window.open('about:blank');
//myWindow.document.write('<!DOCTYPE html><html><head></head><body><p>This is just a paragraph</p></body></html>');
});
})
.catch(function (error) {
console.log('Error: ' + JSON.stringify(error));
if (error instanceof OfficeExtension.Error) {
console.log('Debug info: ' + JSON.stringify(error.debugInfo));
}
});
}
Окно следующего сообщения Windows выскакивает, когда кнопка ОК становится серой, когда window.open('about:blank');
называется:
НОТА: На том же рабочем столе я потом создал новыйэто UWP AP with Javascript
проект и в следующем методе их проекта, я откомментировал их код и добавилwindow.open('about:blank');
, Когда я вызываю следующий метод там, он успешно открывает пустую страницу по умолчанию там.
function sayHello() {
//var messageDialog = new Windows.UI.Popups.MessageDialog("Hello, world!", "Alert");
//messageDialog.showAsync();
window.open('about:blank');
}
ОБНОВИТЬ:
Как я могу заставить его работать из диалога? Я попробовал следующее, но это не сработало: я создал этонадстройка диалога, Работает как есть. Затем я закомментировал кодsubmit()
функция вForm.js
файл надстройки в новом проекте и добавленwindow.open('https://www.google.com/');
линия вместо Когда я нажимаю кнопку «Отправить» в диалоговом окне, он успешно открывает веб-сайт Google в браузере по умолчанию. Но если я заменю вышеуказанную строку на
var myWindow = window.open('about:blank');
myWindow.document.write('html here'');`
это показывает то же самое окно предупреждения, показанное на изображении выше