Iframe-Inhalt abspeichern

Kann man das Worddokument nicht mit einem Javascript schließen, bevor die Speicherung ansetzt? :-)
Wenn das ginge, müsste das Dokument ja nicht mehr im Bearbeiten-Modus sein, oder?
 
Ich hatte probiert, eine leere Seite ins iFrame zu Laden... ohne Wirkung.
Ich kanns ja nochmal probieren....aber nicht Heute :-)
 
Code:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--
function speichern()
{
    window.setTimeout("doc_speichern('"+String(unescape(document.word.location)).replace(/^file[\W]+/g,'')+"')",1000);
    document.word.location='about:blank';
}

function doc_speichern(strDoc)
{
        //Word-Instanz erzeugen
    objWord=new ActiveXObject('Word.Application');
        //Dokument öffnen
    objDoc=objWord.Documents.open(strDoc);
        //'Speichern-Unter'-Dialog erzeugen
    dlg = objWord.Dialogs.Item(84);dlg.Show();
        //Word beenden
    objWord.Quit();
}
//-->
</script>
</head>
<body>
<a onclick="speichern()">Doc speichern</a>
<iframe name="word"src="doc.doc"></iframe>
</body>
</html>
 
Fehlermeldung "Automatisierungsserver kann Objekt nicht erstellen."
Woran könnte das liegen?

Bei mir heißt das iframe "content", also habe ich einfach das Vorkommen von "word" in "content" geändert. Funktioniert es bei dir?
Word 2000 habe ich.
 
Damit das erzeugen des Word.Application-Objektes funktioniert, müssen die "unsicheren" ActiveX-Controls zugelassen sein(Internetoptionen>Sicherheit)

Die Fehlermeldung deutet darauf hin, dass dies nicht der Fall ist.

Alternativ kannst du deine *.html-Datei auch mit der Endung *.hta ausstatten, dann gibt es keine Sicherheitsbeschränkungen.
 
Also ich bin echt beeindruckt, was du alles weißt.

Wenn ich die Dateiendung in .hta umwandle, passiert folgendes, wenn ich auf Abspeichern klicke:
 

Anhänge

  • fehler.jpg
    fehler.jpg
    35,8 KB · Aufrufe: 59
Du hast bestimmt meinen Code geändert, und aus
Code:
<a onclick="speichern()">Doc speichern</a>
...folgendes gemacht:
Code:
<a href="javascript:speichern()">Doc speichern</a>
...gemacht.
Wenns dir um den Cursor geht, schreibs so:
Code:
<a href="javascript:void(speichern())">Doc speichern</a>
 
Also: Wenn ich es in OnClick umändere funktioniert es. :) :) :) Einziges kleines Problemchen ist noch, dass nachdem ich auf Speichern klicke das Word-Dokument nicht mehr im Iframe ist. Ich müsste mit F5 aktualisieren, damit es erneut hineingeladen wird.

Aber zu meinem Verständnis würde ich gerne wissen, was eine .hta Datei ist und warum er dann keine Active-X-Sicherheitsaspekte beherzigt. Das mit dem void(funktion()) verstehe ich auch nicht. Das klappt auch nicht, da kommt das gleiche Ergebnis wie auf dem Screenshot. Was hast du mit der void-Funktion versucht zu umgehen?
Wär nett, wenn du mich aufklären könntest ;)
 
sh0x hat gesagt.:
Also: Wenn ich es in OnClick umändere funktioniert es. :) :) :) Einziges kleines Problemchen ist noch, dass nachdem ich auf Speichern klicke das Word-Dokument nicht mehr im Iframe ist. Ich müsste mit F5 aktualisieren, damit es erneut hineingeladen wird.

...document.nameDesIframes.location=strDoc am Ende der Funktion sollte es auch tun.

sh0x hat gesagt.:
Aber zu meinem Verständnis würde ich gerne wissen, was eine .hta Datei ist und warum er dann keine Active-X-Sicherheitsaspekte beherzigt.

Die Sicherheitseinstellungen gelten für den IE.
Das, was du da siehst, ist aber nicht der IE, sondern MSHTA
http://msdn.microsoft.com/workshop/author/hta/overview/htaoverview.asp

Was hast du mit der void-Funktion versucht zu umgehen?
Wär nett, wenn du mich aufklären könntest
Damit sollte vermieden werden, dass die Funktion einen Rückgabewert an den Link ausgibt.
Ich vergass allerdings, dass Link bei HTA standardmässig in einem neuen Browserfenster geöffnet werden.
Um dies zu vermeiden, muss folgendes in den <head>:
Code:
<HTA:APPLICATION NAVIGABLE = yes>
 
Ich weiß garnicht, wie ich dir danken soll. 1A! Es läuft alles super.

Ich habe nur noch eine Frage zu dem strDoc: Wir übergeben der Funktion doc_speichern ja folgendes:
Code:
"+String(unescape(document.content.location)).replace(/^file[\W]+/g,'')+"

was macht dieser Code?

Ich habe es probiert, den HREF am Anfang in ner Variable zu speichern und dann später einfach wieder zuzuweisen - das klappt auch. Naja, ist nicht so elegant wie dein Weg, deshalb würde ich gerne wissen, wie deine Lösung funktioniert.
Code:
a = document.content.location.href;
[...]
document.content.location = a;
 

Neue Beiträge

Zurück