Представление Explorer на странице не из SharePoint - PullRequest
0 голосов
/ 07 мая 2009

Кто-нибудь знает, возможно ли встроить представление обозревателя для библиотеки документов на странице за пределами узла SharePoint? Мне бы хотелось, чтобы эта функциональность появлялась в приложении ASPX совершенно независимо от SharePoint. Я знаю о доступных веб-службах, вопрос в том, чтобы внедрить функциональность представления папок, а не программно обмениваться данными с SharePoint.

Ответы [ 2 ]

1 голос
/ 21 мая 2009

В то время как вы можете подумать, что какой-то элемент управления ActiveX требует специальных вещей от Sharepoint, Explorer View вроде как встроен в IE. До тех пор, пока вы ранее использовали его в SharePoint в сеансе Windows, всего лишь следующее приведет к получению рамки просмотра Explorer:

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

Вы можете сделать это, используя любой допустимый путь Windows Explorer, при условии, что страница размещена локально или в вашей внутренней сети. Просто попробуйте создать локальный тестовый HTML-файл с чем-то вроде:

<iframe src="c:\">

Имейте в виду, что при этом вы столкнетесь с некоторыми проблемами, поскольку аутентификация должна быть передана в SharePoint. Лучший способ, который я нашел, - это скопировать файл core.js из Sharepoint, вырезать из него все, кроме элементов навигации, и удалить все вызовы в этих методах для недоступных объектов, а затем использовать NavigateHttpFolderIfSupported (), чтобы перейти к " http://path/to/sharepoint/webdav/folder".

Единственная проблема, с которой я столкнулся при использовании этого метода, - это несовместимость с IE8, так что следите за этим. Я вполне уверен, что это связано с защитой межсайтовых сценариев и вызовом из core.js, но весь этот файл выглядит очень рубиново-золотым, и я не хочу с ним связываться.

1 голос
/ 08 мая 2009

Я закончил деконструкцию исходного представления проводника и перевел его на следующее:

<!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>

Возможно, это можно сделать немного аккуратнее, но это, безусловно, работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...