Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Рекомендуемый способ передачи данных и сообщений с родительской страницы в дочернее диалоговое окно — использовать messageChild метод , как описано в разделе Использование API диалога Office в надстройках Office. Если надстройка работает на платформе или узле, который не поддерживает набор требований DialogApi 1.2, можно использовать два других способа передачи информации в диалог.
Храните сведения в любом месте, доступном как в окне узла, так и в диалоговом окне. Два окна не имеют общего хранилища сеансов (свойство Window.sessionStorage ), но если у них один и тот же домен (включая номер порта, если он есть), они совместно используют общее локальное хранилище.
Примечание.
Изменения в безопасности браузера повлияют на вашу стратегию обработки маркеров.
- Если надстройка выполняется в Office в Интернете в браузере Safari, диалоговое окно и область задач не используют одно и то же локальное хранилище, поэтому их нельзя использовать для обмена данными между ними.
- Начиная с версии 115 для браузеров на основе Chromium, таких как Chrome и Edge, секционирование хранилища включено, чтобы предотвратить отслеживание между сайтами по боковому каналу (см. также политики браузера Microsoft Edge). Это означает, что данные, хранящиеся API хранилища, например локальным хранилищем, доступны только для контекстов с тем же источником и тем же сайтом верхнего уровня. По возможности рекомендуется передавать данные между диалогом и областью задач с помощью методов messageParent и messageChild, как описано в разделе Использование API диалога Office в надстройках Office.
Добавьте параметры запроса в URL-адрес, который передается в метод
displayDialogAsync.
Использование локального хранилища
Чтобы использовать локальное setItem хранилище, вызовите метод window.localStorage объекта на главной странице перед вызовом displayDialogAsync , как показано в следующем примере.
localStorage.setItem("clientID", "15963ac5-314f-4d9b-b5a1-ccb2f1aea248");
Код в диалоговом окне считывает элемент при необходимости, как показано в следующем примере.
const clientID = localStorage.getItem("clientID");
// You can also use property syntax:
// const clientID = localStorage.clientID;
Использование параметров запроса
Используйте этот подход для небольших значений, которые требуются только при первоначальном открытии диалогового окна.
На главной странице добавьте параметры запроса к URL-адресу, переданном в displayDialogAsync.
Office.context.ui.displayDialogAsync('https://myAddinDomain/myDialog.html?clientID=15963ac5-314f-4d9b-b5a1-ccb2f1aea248');
Пример, в котором используется эта техника, см. в статье Вставка диаграмм Excel с помощью Microsoft Graph в надстройке PowerPoint.
Код в вашем диалоговом окне может проанализировать URL-адрес и прочитать значение параметра.
Важно!
Office автоматически добавляет параметр запроса с именем _host_info в URL-адрес, который передается в displayDialogAsync. Он добавляет этот параметр после пользовательских параметров запроса, если таковые есть. Он не добавляется _host_info к последующим URL-адресам, к которым переходит диалоговое окно. Корпорация Майкрософт может изменить содержимое этого значения или полностью удалить его в будущем, поэтому ваш код не должен читать его. Office добавляет то же значение в хранилище сеансов диалогового окна (свойство Window.sessionStorage ).
Ваш код не должен ни считывать это значение, ни записывать в него данные.
Устранение распространенных проблем
- Если локальное хранилище в диалоговом окне отображается пустым, убедитесь, что на главной странице и в диалоговом окне используется тот же источник.
- Если значение параметра запроса отсутствует, убедитесь, что оно присутствует в исходном URL-адресе, переданном в
displayDialogAsync. - Если данные требуются после перенаправлений в потоке диалога, используйте локальное хранилище или состояние сервера вместо того, чтобы полагаться только на параметры запроса.
См. также
Office Add-ins