Word web 添加使用对话框

Word web add in using dialog box

我知道动态功能区按钮或菜单在 Web 添加项目中尚不支持,不知道是否对此进行了任何改进。事实上,我的主要问题是:我正在尝试 运行 我的网络添加到对话框中,而不是在任务窗格中,但是当我尝试获取 Office Word 文档的自定义属性时,我能够从任务窗格执行此操作但不能在对话框上执行相同操作。当我尝试下面的代码时,我得到一个 RichApi.Error:AccessDenied。我检查了域,但没有发现任何问题。有什么建议吗?`

    async function readCustomDocumentProperties5() {
            await Word.run(async (context) => {
                let properties = context.document.properties.customProperties;
                properties.load("key,type,value");


                await context.sync();

                for (var i = 0; i < properties.items.length; i++)
                    console.log(
                        "Property Name:" +
                        properties.items[i].key +
                        "; Type=" +
                        properties.items[i].type +
                        "; Property Value=" +
                        properties.items[i].value
                    );
          
            });
        }

错误:

Uncaught (in promise) RichApi.Error: AccessDenied
at new n (word-win32-16.01.js:26)
at n.i.processRequestExecutorResponseMessage (word-win32-16.01.js:26)
at word-win32-16.01.js:26
at async Dialog.html?_host_Info=Word$Win32.01$tr-TR$telemetry$isDialog$[=11=]:47
at async readCustomDocumentProperties5 (Dialog.html?_host_Info=Word$Win32.01$tr-TR$telemetry$isDialog$[=11=]:42)

重要提示:您无权访问 iframe 中的 office 上下文或新 window 作为对话框。但是这里有个work-around

您正在使用 execute function 类型从功能区打开对话框。对吗?

解决方案是在打开对话框的函数文件中进行修改。在 Office.context.ui.messageParent(your object as json or whatever you need to pass) 的帮助下。因此,在单击按钮时,您会向功能文件发送消息,并且您可以访问那里的办公应用程序上下文。