2017-09-08 4 views
1

Unser Outlook-Add-In office.js öffnet eine externe Website mit window.open(). Diese andere Website wird in Outlook 2013, Outlook 2016, Outlook für Mac und OWA in Chrome, Firefox und Edge ordnungsgemäß geöffnet. Es wird nicht ordnungsgemäß in OWA für Safari und IE geöffnet, aber wenn Sie die URL kopieren und in ein neues Safari oder IE-Fenster einfügen, funktioniert es.window.open von OWA in Safari und IE

Interessanterweise, wenn outlook.office.com als vertrauenswürdige Site in IE hinzugefügt wird, funktioniert dies in IE.

Wenn ich sage, dass das geöffnete Fenster nicht funktioniert, ich meine, es überprüft irgendwie auf gültiges Betriebssystem, Browser und Flash (und das scheitert in den bereits gegebenen Szenarien (aber gelingt in einem neuen Browserfenster).

Es scheint, dass der aufrufende Kontext für OWA in Safari und IE anders ist und für IE der Kontext korrigiert wird, wenn outlook.office.com eine vertrauenswürdige Site ist. Da Safari anscheinend keinen gleichwertigen Mechanismus wie vertrauenswürdige Sites aufweist, ist diese Problemumgehung für Safari nicht einmal eine Option.

Irgendwelche Ideen, was das Problem sein könnte? Vielen Dank.

Update: Ich habe gerade meinen Safari auf Version 11.0 (12604.1.38.1.7) aktualisiert und dieses Problem tritt nicht mehr für Safari OWA auf. Tatsächlich funktioniert jede Kombination von window.open() Aufruf oder Dialog API-Aufruf, mit oder ohne eine Redirect-Seite dazwischen. Jemand da draußen hat einen tollen Job gemacht!

Antwort

1

Die Verwendung von window.open() mit Office Web Add-Ins führt zu einer Reihe von Problemen, einschließlich des Problems, das Sie kennengelernt haben. Die Anleitung besteht darin, stattdessen die in Office.js enthaltene Dialog API zu verwenden.

Die Verwendung der Dialog-API ist sehr einfach. Sie können mehr lesen und einige Beispielszenarien in Use the Dialog API in your Office Add-ins sehen.

+0

Ich habe versucht, die Dialog-API zu verwenden, um eine HTML-Datei zu laden, die auf der Domäne des Add-Ins gehostet wird und sofort auf die andere Website umleitet. Dies hatte das gleiche Ergebnis. Ich werde die Beispielszenarien untersuchen, um zu sehen, was ich falsch mache. Vielen Dank. – Carbo

+0

Stellen Sie sicher, dass Sie diese Weiterleitung in der Funktion Office.initialize() verarbeiten, damit Sie sicher sind, dass Outlook die Bits hinter der Szene verdrahtet hat, bevor Sie diese Seite verlassen. –

+0

Bitte stellen Sie sicher, dass Sie [App-Domains] angeben (https://dev.office.com/docs/add-ins/overview/add-in-manifests#specify-domains-you-want-to-openin-in- Das Add-In-Fenster) in Ihrem Manifest, wenn Sie die Dialog-API verwenden. –

Verwandte Themen