我想创建一个按钮,将用户重定向到 SharePoint 2010 中的“资源管理器视图”。问题是:我不知道如何获取原始按钮“使用 Windows 资源管理器打开”的 url。我测试了很多东西都没有成功,比如 Process.Start("explorer.exe","url of documents library")
4 回答
- 在您的浏览器中转到 Sharepoint 项目站点,然后单击带有标签的按钮Open with Explorer。
- 在 Windows 资源管理器中,右键单击项目站点的文件夹并选择Create Shortcut。
- 右键单击新的快捷方式并选择属性
- 在目标下的选项卡快捷方式上,您可以找到所需的 URL。
在我的情况下,两个目标快捷方式看起来像这样
Internet Explorer: https ://COMPANYNAME.sharepoint.com/sites/LIBRARY
Windows 资源管理器: \\COMPANYNAME.sharepoint.com@SSL\DavWWWRoot\sites\LIBRARY
我在Office 365 Sharepoint 2013和Windows 7机器上。
使用以下 HTML,您可以使用按钮打开此 URL:
<input
type="button"
onclick="window.open( 'file:\\\\COMPANYNAME.sharepoint.com@SSL\\DavWWWRoot\\sites\\LIBRARY' )"
value="Explore"
/>
如果您的 URL 包含任何空格,您需要将它们编码为%20,其他编码请参见:http ://www.w3schools.com/tags/ref_urlencode.asp
更新:在 Windows 资源管理器中,\\COMPANYNAME.sharepoint.com@SSL\DavWWWRoot\sites\LIBRARY
需要添加到“快速访问”部分(左上角)。否则解决方案不是持久的。
您可以使用与 SharePoint 功能区相同的方法:
<a onclick="CoreInvoke('NavigateHttpFolder', '/MyDocLibrary', '_blank');">Open with Explorer</a>
CoreInvoke 功能完美运行(感谢 AleNom!)。
我创建了一个函数,可以从您在 SharePoint 网站上的任何位置动态打开资源管理器。我从放在工具栏(母版页)中的自定义按钮调用它。
function openExplorer()
{
if(getQueryString("RootFolder")!="")
{
var strURL = getQueryString("RootFolder")
}
else
{
var strURL = top.location.href.replace("http://[servername]","")
var intLastSlash = strURL.lastIndexOf("/")
strURL = strURL.substring(0,intLastSlash)
}
if (strURL.lastIndexOf("/Forms") >-1)
{
strURL = strURL.substring(0,strURL.lastIndexOf("/Forms"))
}
CoreInvoke('NavigateHttpFolder', strURL, '_blank')
}
function getQueryString(name)
{
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
首先,您需要翻译库网址:
从
http://sharepoint/library
至
\\sharepoint\library
然后您可以使用带有 javascript 的 HTML 输入控件在资源管理器窗口中打开库:
<input type="button" onclick="window.open('file:\\\\sharepoint\\library')" value="Explore"/>
直接从 Web 浏览器窗口调用本地可执行文件存在安全问题。