método add-in WORD da web do Office.js: window.open () não está funcionando com o URL "about: blank"
Resumo:
window.Open('')
ouwindow.Open('about:blank')
trabalha com JavaScript em um arquivo html normal, como pode ser testadoAqu. Mas parece não funcionar em um suplemento do Office.js.
Detalhes:
No meuWindows 10 desktop
comVS2017
Eu crieiistrojeto de suplemento @ Office.js WORD que funciona perfeitamente com o meuMicrosoft Office Home and Student 2016
edição. No mesmo projeto, criei um novo botãobtnTest
nohome.js
Arquivo. Quando clico embtnTest
chama com sucesso o seguinteMyTest
e abre uma nova janela comwindow.Open('some URL')
.
Mas no mesmoMyTest
quando eu chamowindow.Open('about:blank')
não abre umpágina em branc; em vez disso, abre a caixa de mensagem do Windows 10 mostrada na captura de tela abaix
O objetivo aqui é que meu código crie uma string HTML com base em algum conteúdo deWORD document
e depois usewindow.document.write(...)
método para abrir dinamicamente esse html no navegador, conforme explicado (e você pode testar)Aqu. Questã: Como posso fazerwindow.Open('about:blank')
método de trabalho?
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));
}
});
}
janela @ Windows seguinte aparece com o botão OK acinzentado quando window.open('about:blank');
é chamado
NOT: Na mesma área de trabalho, criei novosist UWP AP with Javascript
project e no método a seguir, descomentei o código e adicioneiwindow.open('about:blank');
. Quando chamo o método a seguir, ele abre com êxito a página em branco padrã
function sayHello() {
//var messageDialog = new Windows.UI.Popups.MessageDialog("Hello, world!", "Alert");
//messageDialog.showAsync();
window.open('about:blank');
}
ATUALIZA:
Como posso fazê-lo funcionar a partir do diálogo? Tentei o seguinte, mas não funcionou: criei esteuplemento @dialog. Funciona como está. Então eu comentei o código desubmit()
função emForm.js
arquivo do suplemento no novo projeto e adicionouwindow.open('https://www.google.com/');
linha em vez disso. Quando clico no botão Enviar da caixa de diálogo, ele abre com êxito o site do google no navegador padrão. Mas se eu substituir a linha acima por
var myWindow = window.open('about:blank');
myWindow.document.write('html here'');`
it mostra a mesma janela de aviso mostrada na imagem acima