2017-06-04 1 views
0

Ich habe ein Excel-Add-In mit einer Schaltfläche erstellt. Ein Klick auf den Button öffnet ein Popup. Der folgende Code funktioniert gut in Excel Online: Wir könnten ein Popup (in Chrome) öffnen, es manuell schließen und ein Popup erneut öffnen.Kann den Wert von Popup nicht überprüfen, nachdem es in Excel manuell für Windows geschlossen wurde

var popup; 
function openPopup(url) { 
    console.log("openPopup here"); 
    console.log(popup); 
    if ((popup === null) || (popup === undefined) || (popup === {}) || (popup.location === undefined) || (popup.location.href === undefined)) { 
     popup = window.open(url, "popup", "status=1, location=1, width=1000, height=1200, scrollbars=yes, resizable=yes"); 
    } else { 
     popup.location.href = url; 
    } 
} 

aber ich merke, dass es nicht mit Excel 2016 für Windows funktioniert: es kann ein Popup zum ersten Mal öffnen (in IE 11), aber es manuell nach dem Schließen, können wir nicht wieder zu öffnen ein Popup nicht mehr. F12 Tool gibt die folgenden Fehler in der Zeile if:

openPopup here 
[Object] { } 
Error 
    at openPopup ... ... 

Wer weiß, wo das Problem liegt?

Antwort

0

Ich sehe nicht, dass Sie die OfficeJS-Dialog-API verwenden. Windows.open funktioniert nicht auf Rich-Clients. Einzelheiten finden Sie unter here.

+0

Siehe auch die detaillierte Übersicht: https://dev.office.com/docs/add-ins/develop/dialog-api-in-office-add-ins –

+0

Ich versuchte Dialog API, die Einschränkungen hat. Die Hauptbeschränkung für mich ist, dass ich regelmäßig Informationen aus dem Aufgabenbereich an das Dialogfeld senden muss. Es scheint, dass es keine dedizierte Lösung gibt. Wenn Sie wissen, lassen Sie es mich wissen ... – Thomas

+0

@Thomas Vielleicht können Sie Ihr Problem über localstorage lösen. Sie können den lokalen Speicher über die Taskleiste schreiben und ihn im Popup-Fenster lesen, das über DialogApi geöffnet wurde. Sicher, wenn sich das Popup- und Aufgabenbereich-Add-In in derselben Domain befinden. – thadam

Verwandte Themen