Я уверен, что связь работает, но я нахожу странным, что мы не можем переключаться между всплывающим окном и Excel для Mac ...

редлагают некоторые существующие темы (например,один, два, три), токДиалоговое окно не предоставляет API для отправкирегулярно сообщения со страницы хоста (например, панели задач) в диалоговое окно.

Поэтому я должен искать обходной путь: мы резервируем переменнуюmessage вlocalStorage, тогда мы делаем флажок Диалоговое окнорегулярно если значениеmessage изменения. Это похоже на ручную реализацию прослушивателяlocalStorage.

Кто-нибудь знает, как реализовать это надежным и эффективным способом (учитывая, что JavaScript не является многопоточным языком)? Я не хочу, чтобы этот слушатель был дорогим, и какой интервал нужно было бы установить?

Изменить 1:

Я попробовал StorageEvent, который предложил @PatrickEvans. Как для надстройки, так и для диалогового сайта нам необходимо реализоватьsendMessage... иreceiveMessage... по переменнымmessageFromHostToSite а такжеmessageFromSiteToHost в хранилище.

Он работал в Excel Online в Chrome и в Excel Online в IE 11. Однако он не работал в Excel 2016 для Windows 7 или 10; мы можем установить элементыlocalStorage и вернуть их, меняяlocalStorage кажется, ничего не увольняет.

Так может ли кто-нибудь подтвердить, что StorageEvent действительно не поддерживается в Excel 2016 для Windows 7 или 10? В этом случае я все еще ищу другие обходные пути ...

Изменить 2:

Я наконец сделал упрощенный пример: вотXML-файл, который вызываетнадстройка а такжесайт, Он хорошо работает в Excel Online, но НЕ запускает события в Excel для Windows.

Ответы на вопрос(1)

Ваш ответ на вопрос