我一直在努力解决这个问题, 并希望社区中的某个人可以提供解决方案。
我有一个要求是在CRM帐户表单上放置一个按钮,该按钮与Sharepoint文档库中的Open With Explorer按钮具有相同的逻辑。逻辑是必需的,因为用户必须进行多次单击才能到达此按钮,并在Windows资源管理器中打开所需帐户的文件夹,其中包括:
CRM与Sharepoint集成,当在Windows资源管理器中打开文件夹时,它具有以下示例链接
的http:// {的SharePoint} / CRM / 7F9F72A1-4591-E011-AC6C-00155D773703 /文档/
其中GUID 7F9F72A1-4591-E011-AC6C-00155D773703是CRM中的帐户ID。
从我的研究中我发现实现这一目标的javascript函数是 来自Sharepoint中sp.js的 NavigateHttpFolder 。
从此功能和此链接About Web Folder Behaviors 我已完成以下功能。
var httpFolderDiv = document.createElement("SPAN");
function NavigateToFolder() {
document.body.appendChild(httpFolderDiv);
httpFolderDiv.onreadystatechange = NavigateToFolder;
httpFolderDiv.id = "navDiv";
httpFolderDiv.addBehavior("#default#httpFolder");
if (httpFolderDiv.readyState == "complete") {
httpFolderDiv.onreadystatechange = null;
var link = "";
var account = "";
var accountid = "";
var id = Xrm.Page.data.entity.getId().replace("{", "").replace("}", "");
link = "http://{sharepoint}/CRM/" + id + "/Documents/";
try {
httpFolderDiv.navigateFrame(link, "_blank");
} catch (c) {
alert(c.toString());
}
}
}
此功能在Windows资源管理器中打开Sharepoint中的文件夹,但是如果之前只有该文件夹是从Sharepoint直接打开的话。 我相信我在代码中缺少的逻辑是,我没有做文件夹的映射,就像sharepoint那样。
我知道这个文件夹可以手动映射为网络驱动器Connecting WebDAV Server Using Web folders,但这对我不起作用,因为必须在每个客户端上完成。
我的问题是, 我如何通过从SP获取完整的逻辑,或者从javascript运行控制台命令来映射该文件夹,然后使用上述功能打开它。我对SP并不熟悉,所以请光临我。
感谢。
答案 0 :(得分:0)
我知道已经有一段时间了,因为已经发布了,但我在搜索完全相同的问题时偶然发现了它。
以下是SharePoint 2013中对我有用的内容:
<a href='#' onClick="javascript:CoreInvoke('NavigateHttpFolder', '[path to site]/[library name]/', '_blank');">
Click to open in Explorer
</a>
它与SharePoints自身功能使用的功能基本相同。