2009-03-17 11 views
15

Angenommen, ich habe WebDAV-fähigen Server, wo ich Haufen von Office-Dokumenten habe. Ich möchte eine Webseite erstellen, die einen Link zum Dokument enthält, so dass durch Klicken auf den Link Microsoft Word geöffnet wird. Word lädt wiederum das Dokument vom WebDAV-Server herunter. Wenn der Benutzer das Dokument bearbeitet, lädt MS Word es zurück.Wie erstelle ich einen HTML-Link, der MS Word zwingt, Dokument auf Webdav-Server zu bearbeiten

Ich weiß, dass MS Word (und andere Office-Programme) die Bearbeitung von Dokumenten unterstützt, die auf dem WebDAV-Server gespeichert sind. Was ich nicht weiß, ist, wie man einen Link erzeugt, der MS Word dazu veranlasst, dieses Dokument selbst herunterzuladen.

Ist es möglich? Vielleicht mit einem speziellen Schema?

+0

können Sie überprüfen, ob die Antwort von gciochina die ausgewählte Antwort sein soll - so funktioniert beispielsweise Firefox in Sharepoint, wenn ein Link geöffnet wird. –

Antwort

4

Soweit ich mich erinnere, ist die einzige Möglichkeit, dies zu erreichen, explizit Word in ActiveX zu instanziieren, und die URL zu öffnen.

Dies kann innerhalb der HTML-Seite getan werden (in der IE benötigt wird), oder mit einer externen Anwendung, die dann für einen neuen MIME-Typ registriert werden müsste (siehe http://greenbytes.de/tech/webdav/rfc4709.html#rfc.section.B.1 als Beispiel).

+0

Julian, als Spezifikationsautor wissen Sie wahrscheinlich, ob Clients die Mounting Webdav-Server sofort unterstützen? –

+1

Der Xythos-Client tut das. Und die Spezifikation enthält bereits den Code, um es mit dem Microsoft-Webordner-Client zu ermöglichen, Es wäre nett, eine passende Implementierung für MacOS X zu haben; sollte nicht zu schwer sein ... –

0

Ich habe festgestellt, dass Confluence dies tun kann. Sie haben spezielle Firefox-Plugin, aber es sollte mit Internet Explorer funktionieren.

In der Tat, wenn ich mit ihm zu spielen begann, stellte sich heraus, dass der IE tatsächlich Dokument direkt von WebDAV nicht öffnen. Es sieht so aus, als ob IE die Seite heruntergeladen, aber zusammen mit URL an MS Word übergeben hat. MS Word kann dann die Datei zurückspeichern (gut, manchmal sieht sie die Datei als schreibgeschützt und erlaubt es nicht, zurück zu speichern, sondern erlaubt es, unter einem anderen Namen hochzuladen).

Noch Untersuchung.

+0

Wenn Sie sagen "manchmal sieht es die Datei als schreibgeschützt" haben Sie irgendwo auf diesem? Ich habe eine andere Frage zu einem ähnlichen Problem gestellt: http://stackoverflow.com/questions/2999450/ms-word-opens-documents-hosted-on-webdav-share-read-only-on-windows-vista-and -7-b – rjmunro

+0

@rjmunro: leider nein ... wir haben die ActiveX/plugins-Technik nicht benutzt, um MS Word zu öffnen. –

11

Confluence verwendet die EditDocument-Methode des SharePoint.OpenDocuments-ActiveX-Steuerelements.

Beispiel in Javascript:

new ActiveXObject("SharePoint.OpenDocuments.1").EditDocument("http://example.com/test.doc") 
+0

Dies funktionierte wie ein Charme für uns mit IE6/IE8 – akiro

+3

irgendeine Idee, wie dünn in FF oder Chrome zu verwenden? –

33

Ähm, könnten Sie auch so etwas wie folgt verwenden:

<a href="ms-word:ofe|u|http://some_WebDav_enabled_address.com/some_Word_document.docx">Open Document in Word</a> 

Der Unterschied zu den oben genannten Antworten ist, dass dies nicht mehr benötigen, ActiveX und es wird funktionieren Zumindest in IE 8+, Chrome und Firefox, solange es von einer Windows-Maschine aus für Office 2010+ geöffnet wird (nicht 100% sicher).

Erläuterung: Der Teil ms-word:ofe ist ein Protokoll, das auf dem Clientcomputer installiert wird, wenn Office installiert wird. Ich weiß nicht genau, was der |u| Teil tut.

+5

Dies ist heutzutage die einzig vernünftige Lösung und sollte die akzeptierte Antwort sein. Das Argument u ist der Argumentdeskriptor btw und enthält weitere Informationen über den Befehl (ofe - 'in diesem Fall zur Bearbeitung geöffnet'). Soweit ich weiß, ist es aber immer du. – bstenzel

+4

Es ist hier dokumentiert: https://msdn.microsoft.com/en-us/library/office/dn906146.aspx –

+2

Wie wird diese Antwort nicht als die angenommene Antwort markiert? –