Javascript 不允许从Dynamics 365访问本地文件和本地资源
在CRM中,我们有一个项目列表,网络驱动器上有与这些项目相关的文件。不想设置Sharepoint,因为我们以前遇到过Sharepoint问题 无论如何,在每个项目记录中,我们希望为该项目的文件添加网络URI,以便用户可以单击CRM记录中的链接并直接访问该项目。所以类似于Javascript 不允许从Dynamics 365访问本地文件和本地资源,javascript,dynamics-crm,Javascript,Dynamics Crm,在CRM中,我们有一个项目列表,网络驱动器上有与这些项目相关的文件。不想设置Sharepoint,因为我们以前遇到过Sharepoint问题 无论如何,在每个项目记录中,我们希望为该项目的文件添加网络URI,以便用户可以单击CRM记录中的链接并直接访问该项目。所以类似于X:\Projects\contoso 为实现这一目标,我提出了以下建议: 基本上包括制作一个HTML页面并将其作为web资源插入表单,从而使其成为一个iframe <html> <head>
X:\Projects\contoso
为实现这一目标,我提出了以下建议:
基本上包括制作一个HTML页面并将其作为web资源插入表单,从而使其成为一个iframe
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<a id="doclink" style="border: 0px currentColor;" href="http://www.example.com" target="_blank">
<img style="border: 0px currentColor;" src="stsr_folders_icon.png">
</a>
<script language="javascript" type="text/javascript">
var linkval = window.parent.Xrm.Page.data.entity.attributes.get("stsr_documents").getValue();
var a = document.getElementById('doclink');
a.href = "file:"+linkval;
</script>
</body>
</html>
var linkval=window.parent.Xrm.Page.data.entity.attributes.get(“stsr_文档”).getValue();
var a=document.getElementById('doclink');
a、 href=“文件:”+linkval;
当然,要更新window.parent.Xrm.Page.data.entity.attributes.get(“stsr\U文档”)
和。它从stsr_documents
字段中获取URI值,并将其附加到图像中
它确实完成了追加和生成正确的file:///X:/Projects/contoso
。您可以在浏览器中键入此URL,它将显示目录
但是,仅单击它会导致以下错误:
不允许加载本地资源:file:///X:/Projects/contoso
in
铬73.0
- Edge 42中没有错误(URI是
文件:X:/Projects/contoso
),但根本不做任何事情
- IE 11和Edge一样:相同的URI,没有错误,只是什么都没有发生
- 火狐66:同样。。。没有错误,什么也没有发生;URI是
file:///X:/Projects/contoso
明确地说:我不是在问为什么会出现错误或者为什么它不起作用。从大量关于它的问题中可以清楚地看出,几乎所有现代浏览器的安全特性都是不加载本地资源。我得到了这么多
我想知道的是,如果有的话,什么是变通方法。有人建议设置一个web服务器,但我不确定这将如何工作,因为我没有访问CRM web服务器的权限
还有什么其他解决方案?使用UNC资源与Dynamics 365等跨浏览器web平台的性质相反。随着Windows用户的笨拙体验,这显然是不起作用的,请考虑Mac和移动用户在浏览器中打开UNC路径时的体验。
SharePoint将是一个明显的选择,但如果不考虑这一点,您可能需要考虑在托管文件的服务器上实现
这几天我怀疑很多人会认为WebDAV是一个“现代”或流行的D365文件集成解决方案。p>
在SharePoint之外,它是一个可行且流行的基于云的选项