从Office JS Word API

时间:2017-06-27 18:23:41

标签: javascript office365 office-js office365api office365-apps

我试图从对话框中访问word文档上下文,如下所示:

Office.context.document.setSelectedDataAsync("Hello World!",
        function (asyncResult) {
            var error = asyncResult.error;
            if (asyncResult.status === Office.AsyncResultStatus.Failed){
                 write(error.name + ": " + error.message);
            }
        });

这不起作用,因为setSelectedDataAsync未定义。

在此处的文档https://dev.office.com/reference/add-ins/shared/officeui.displaydialogasync中,它在设计注意事项下方的底部显示“不要使用对话框与文档进行交互。请改用任务窗格。”

根本不可能从对话框中访问完整 word文档上下文,还是仅仅建议不要这样做?

理想情况下,我想向用户显示包含大量详细信息的条目列表,然后用户可以从中选择一个,并将文档插入到文档中。从技术上讲,我可以在TaskPane中执行此操作,但那里的空间有限。如果可能的话,我真的很想在对话框中做到这一点(特别是因为我有一些非常类似的要求)。

是否有机会以与TaskPane相同的方式与word文档进行交互?

1 个答案:

答案 0 :(得分:2)

您无法通过对话框与文档进行互动。

来自文档:

https://dev.office.com/docs/add-ins/develop/dialog-api-in-office-add-ins

  

messageParent 函数是可以在对话框中调用的两个Office API之一。 (另一个是Office.context.requirements.isSetSupported)

所以基本上,你可以通过对话框显示/收集一些数据并通过messageParent函数将其发送回父母。

您可以向用户显示所有选项,然后将选定的选项发送回父窗口,并根据需要与文档进行交互。