Office Js displayDialogAsyn c - проверить, есть ли у меня открытое диалоговое окно - PullRequest
1 голос
/ 27 марта 2020

У меня есть надстройка Excel. Я разместил две панели содержимого из моей надстройки и хотел бы открыть из нее диалог.

Один Excel разрешает только одно диалоговое окно одновременно.

Когда я открываю диалоговое окно, прежде чем у меня есть ajax запрос к серверу, но если я не могу открыть диалоговое окно, тогда мне не нужно ajax вызывать.

Я пытался сохраняйте информацию в localStorage, но если excel является Hurm и перезагружается, localalstorage покажет, что диалог открыт, в свою очередь, это неверная информация.

Как я могу проверить, есть ли у меня открытое диалоговое окно?

Заранее благодарю за ответы.

Ответы [ 2 ]

1 голос
/ 28 марта 2020

Я нашел решение, но думаю, что оно не самое лучшее.

Сначала я пытаюсь открыть диалоговое окно с ненадежным URL-адресом сайта.

Если я получаю ошибку 12004, это означает, что я могу открыть диалоговое окно.

Если я получаю ошибку 12007, это означает, что я не могу открыть диалоговое окно, потому что уже открыли диалог из этого окна хоста.

Кажется, что проверка 12007 выполняется раньше, чем проверка 12004.

1 голос
/ 27 марта 2020

Метод displayDialogAsyc вернет ошибку 12007, если диалог уже открыт. Вы можете проверить это и получить ветку кода, если возвращается 12007. Подробнее см. Ошибки из displayDialogAsyn c.

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