非SharePoint页面上的资源管理器视图

时间:2009-05-07 01:52:31

标签: sharepoint

是否有人知道是否可以在主机SharePoint网站之外的页面中嵌入文档库的资源管理器视图?我想在完全独立于SharePoint的ASPX应用程序中展示此功能。我知道可用的Web服务,问题是嵌入文件夹视图功能,而不是以编程方式与SharePoint通信。

2 个答案:

答案 0 :(得分:1)

我最终解构了原始的资源管理器视图并将其提炼为以下内容:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Shared Documents</TITLE>
<SCRIPT language=javascript src="http://[host]/_layouts/1033/init.js" type=text/javascript></SCRIPT>
<SCRIPT language=javascript src="http://[host]/_layouts/1033/core.js" defer type=text/javascript></SCRIPT>
</HEAD>
<BODY scroll=yes onload="NavigateHttpFolderIfSupported('http:\u002f\u002f[host]\u002fsites\u002f[site]\u002fShared Documents', 'expFrame');">
<FORM id=aspnetForm name=aspnetForm>
<IFRAME id=expFrame name=expFrame width=800 height=500></IFRAME>
</FORM>
</BODY></HTML>

它可能做得有点整洁,但它确实有效。

答案 1 :(得分:1)

虽然您可能认为它是一些需要来自Sharepoint的特殊功能的ActiveX控件,但是Explorer View可以直接进入IE浏览器。只要您以前在Windows会话中在SharePoint中使用它,只需以下内容即可为您提供资源管理器视图框架:

<iframe src="\\path\to\sharepoint\webdav\folder">

如果页面在本地或Intranet上托管,您也可以很好地执行任何有效的Windows资源管理器路径。只需尝试使用以下内容制作本地测试html文件:

<iframe src="c:\">

请注意,您会遇到一些问题,因为身份验证需要传递给SharePoint。我发现的最好的方法是从Sharepoint复制core.js,删除其中的所有内容,但导航内容并删除那些方法中的任何调用以获取不可用的内容,然后使用NavigateHttpFolderIfSupported()导航到“{{3 }}”。

我用这种方法遇到的唯一问题是与IE8有些不兼容,所以要小心。我相当肯定它必须使用跨站点脚本保护和core.js内部的调用,但整个文件感觉非常rube-goldberg-esque而且我不想搞砸它。