window.addEventListener не работает в надстройке Word при вызове из команды манифеста (IE11 / Edge) - PullRequest
0 голосов
/ 26 сентября 2019

Я разрабатываю надстройку Word и использую «ExecuteFunction» для запуска обновления локального хранилища.Затем у меня есть прослушиватель объекта окна, который прослушивает изменения в локальном хранилище.

Функция сработала, а локальное хранилище обновлено.Однако прослушиватель событий не запускается в настольной версии Word для Windows.

В файле функций (т. Е. "FunctionFile" в манифесте) код:

(() => {
    Office.initialize = () => {
        window['logout'] = (event: Office.AddinCommands.Event) => {
            const localStorageKey = 'local-storage-key';
            let localStorageData = localStorage.getItem(localStorageKey);

            if (localStorageData) {
                localStorageData = JSON.parse(localStorageData);
                localStorageData['isLoggedOut'] = true;
                localStorage.setItem(localStorageKey , JSON.stringify(localStorageData));
            }
            event.completed();
        };
    };
})();

Затем в точке входа для приложения код:

window.addEventListener('load', () => {
    window.addEventListener('storage', () => {
        try {
            const localStorageKey = 'local-storage-key';
            const localStorageState = localStorage.getItem(localStorageKey);

            // perform some action on local storage update

        } catch (error) {
            console.log(error);
        }
    });
});

Код работает в Word Online, а также в версии Word для Mac.Он не работает в настольной версии Word в Windows - функция logout выполняется, но прослушиватель событий storage никогда не запускается.

Я подозреваю, что прослушиватель событий окна не работает должным образом вIE11 / Edge - например, iframe приложения может не воспринимать событие, вызванное iframe файла функции, или что-то в этом роде.

Существует ли альтернативный / лучший способ передачи команды, выполняемой функциейв файле манифеста и приложения?

Спасибо,

Морган

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...