2017-03-17 46 views
0

我有一个在SharePoint Online中承载的自定义PowerPoint Office加载项。我正在使用JavaScript API来获取有关该套牌的信息,例如当前的幻灯片ID。如何从Office加载项获取SharePoint O365文档ID

Office.initialize = function (reason) { 
    $(document).ready(function() { 
    Office.context.document.addHandlerAsync('documentSelectionChanged', onDocumentSelectionChanged); 
     onDocumentSelectionChanged(); 
    }); 
}; 

function onDocumentSelectionChanged() { 
    Office.context.document.getSelectedDataAsync(Office.CoercionType.SlideRange, 
    function (result) { 
     if (result.status === Office.AsyncResultStatus.Succeeded) { 
     var slideId = result.value.slides[0].id; 
     } 
    }); 
} 

我在API中找不到任何东西来获取当前SharePoint文档的ID(guid)。这是Office API的一部分,还是我可以通过其他方式获取ID?

回答

1

你不能从SourceDoc查询字符串属性中获取它吗?

您曾经可以将SourceDoc作为必需的标记参数传递给插件。现在他们已经将它作为json字符串移动到window.name。所以你需要做JSON.parse(window.name).xdmInfo和一些额外的字符串操作来清理URL。它包含共享点内文档的共享点URL和GUID

+0

加载项在其自己的iframe中呈现在与主窗口不同的域上,因此无法读取地址栏中的URL。 – Jared

+1

您曾经能够将SourceDoc作为必需的标记参数传递给插件。现在他们已经将它作为json字符串移动到window.name。所以你需要做JSON.parse(window.name).xdmInfo和一些额外的字符串操作来清理URL。它包含sharepoint中的sharepoint url和文档的GUID。 – Maarten

+0

哇,谢谢!请添加此作为答案,以便我可以接受它。我最初的搜索没有提供这个“功能”的任何文档,但我会继续寻找。我会清理一下,但是这个片段让我获得了文档ID:'JSON.parse(window.name).xdmInfo.split('|')[2] .match(/ [a-z0-9 ] {32} /)' – Jared

相关问题