VBScript in html einbinden und per Button ausführen
datenmaulwurf
- sonstiges
Hallo zusammen,
bin ein blutiger anfänger, was vbscript angeht und kenn mich deshalb auch noch nicht so gut damit aus! nun zu meiner frage...
wie bekomme ich das hin, dass mein vbscript ausgeführt wird, wenn ich einen button drücke?
Hier mal mein bisheriger sourcecode:
<html>
<title>test</title>
<head>
<script language="VBScript">
<!--
Function teste()
dim datei
dim xml
dim mainelement
dim feld
set xml = createobject("msxml2.domdocument")
if not xml.load ("\172.16.70.3\www\2\TestOrdner\vartest.xml") then
msgbox "XML-Daten konnte nicht geladen werden"
Stop
End If
set datei = getobject("\172.16.70.3\www\2\TestOrdner\VorlageNeu.doc")
set mainelement = xml.documentelement
setVariable "nameBearbeiter", mainelement.selectsinglenode("./nameBearbeiter").text
setVariable "bearbeiterID", mainelement.selectsinglenode("./bearbeiterID").text
setVariable "datum", mainelement.selectsinglenode("./datum").text
setVariable "callNr", mainelement.selectsinglenode("./callNr").text
setVariable "callGeber", mainelement.selectsinglenode("./callGeber").text
setVariable "summary", mainelement.selectsinglenode("./summary").text
for each feld in datei.fields
feld.update
Next
datei.Application.Visible = True
sub setVariable(VarName, Wert)
On Error Resume Next
datei.Variables.Item(VarName).Value = Wert
If Err.Number <> 0 Then
datei.variables.add VarName, Wert
end If
End Sub
End Function
-->
</script>
</head>
<body>
<input type="button" value="testbutton" onClick='teste()'>
</body>
</html>
Folgender Fehler tritt beim drücken auf den button auf:
Typen unverträglich: 'teste'
danke für eure hilfe!
Hello,
End Sub
End Function
die stehen im Code direkt hintereinander, was sie unzweifelhafterweise nicht tun sollen. Verlagere die "End Function" dahin wo sie hingehört und schon reagiert der IE entsprechend (bedenke: Firefox und andere nicht...).
MfG
Rouven
Hello,
End Sub
End Function
die stehen im Code direkt hintereinander, was sie unzweifelhafterweise nicht tun sollen. Verlagere die "End Function" dahin wo sie hingehört und schon reagiert der IE entsprechend (bedenke: Firefox und andere nicht...).MfG
Rouven
Hallo Rouven,
danke für deine schnelle antwort :-)
gott sei dank muss das alles auch nur in ie funktionieren :-P
hab jetzt die Zeile "End Function" vor die Zeile "sub setBariable(VarName, Wert)" gesetzt.
Das Script schein anzuspringen. Aber jetzt hab ich ein neues Problem...
-_-'
-->
Zeile: 16
Zeichen: 1
Fehler: ActiveX-Komponente kann kein Objekt erstellen: 'getobject'
<--
Wenn ich das script auf den server als *.vbs datei starte, klappt alles wunderbar. :-(
liegt das vllt an irgendwelchen sicherheitseinstellungen von ie?!?!?!?
*verzweifel*
Hello,
liegt das vllt an irgendwelchen sicherheitseinstellungen von ie?!?!?!?
entweder daran oder an fehlenden Features auf dem entsprechenden System. GetObject erfordert eine ActiveX-Komponente, die für dich instantiierbar ist. Du forderst augenscheinlich eine ActiveX-Komponente für Word-Dokumente an. Ganz generell könnte das natürlich funktionieren, sofern Word oder ein MS-Word Viewer auf dem Rechner installiert ist, es kann allerdings sein, dass dazu die Sicherheitseinstellungen auf lokales Intranet oder vertrauenswürdige Sites heruntergestellt werden müssen.
Ganz generell bietet VBScript natürlich eine Menge komfortabler Möglichkeiten, aber es fühlt sich in einer normalen Browserumgebung nicht wirklich wohl...
MfG
Rouven
Hallo,
ich hab alles noch einmal lokal getestet und es taucht genau der selbe fehler auf. die sicherheitseinstellungen hab ich testhalber auch mal ganz runter geschraubt, hatte aber auch keine wirkung :-(
und wie gesagt, wenn ich das script mit einer *.vbs datei starte, klappt alles suupi auf den server und local bei mir. mal ein dummer gedanke: kann es vllt sein, dass dem browser irgdendwie eine activx komponente für ms word fehlt?
Niemand da der mir helfen kann? :'-(
Hallo
Niemand da der mir helfen kann? :'-(
Folgender Code öffnet bei mir die von mir gewünschte Word-Datei:
Voraussetzungen:
- Site befindet sich in der Liste der vertrauten Sites.
- Die Ausführung von für das Skripting unsicherer ActiveX-Objekte
steht mindestens auf "Bestätigen"
<html>
<title>test</title>
<head>
<script type="text/vbscript">
[code lang=vbscript]
function teste()
Dim xml
Dim datei
Dim word
On Error Resume Next
' Das Erzeugen dieses Objektes kann fehlschlagen,
' damit müssen wir rechnen
Set xml = CreateObject("msxml2.domdocument")
' Hat's geklappt
If Err.Number > 0 Then
' Erzeugen des Objekts war nicht erfolgreich,
' Gebe die Fehlernummer und -beschreibung aus
MsgBox "Konnte das MSXML2.DOMDocument-Objekt nicht erzeugen" & chr(10) & chr(13) & _
Err.Number & chr(10) & chr(13) & _
Err.Description
' Wir brauchen nicht weiter zu machen und verlassen die Funktion
Exit Function
End If
' Verarbeitung der XML-Datei hab ich weggelassen, hatte keine :-)
Set word = CreateObject("Word.Application")
' Hat's geklappt
If Err.Number > 0 Then
' Erzeugen des Objekts war nicht erfolgreich,
' Gebe die Fehlernummer und -beschreibung aus
MsgBox "Konnte das Word-Objekt nicht erzeugen" & chr(10) & chr(13) & _
Err.Number & chr(10) & chr(13) & _
Err.Description
' Wir brauchen nicht weiter zu machen und verlassen die Funktion
Exit Function
End If
word.visible = True
' Auch das Öffnen einer Datei kann fehlschlagen
Set datei = word.documents.open("\\192.168.2.33\www\test.doc")
' ... und muss im Anschluss überprüft werden
' Du könntest das wie folgt prüfen:
If datei is Nothing Then
MsgBox "Datei konnte nicht geöffnet werden"
End If
' ... nur um festzustellen, dass das Error-Objekt gefüllt ist.
' was Dir spätere Fehlerprüfungen erschweren könnte ...
If Err.Number > 0 Then
' Erzeugen des Objekts war nicht erfolgreich,
' Gebe die Fehlernummer und -beschreibung aus
MsgBox "Konnte die Worddatei nicht öffnen" & chr(10) & chr(13) & _
Err.Number & chr(10) & chr(13) & _
Err.Description
' Wir brauchen nicht weiter zu machen und verlassen die Funktion
Exit Function
End If
' Wenn wir hier angelangt sind, ist die Datei erfolgreich geöffnet -
' und Du kannst nun anfangen, z.B. die Textfelder zu aktualisieren ...
End Function
</script>
</head>
<body>
<input type="button" value="testbutton" onClick="teste()">
</body>
</html>
[/code]
Der Versuch mit
GetObject("Pfad\zu\Datei")
eine Wordinstanz zu öffnen, schlug jeweils fehl. Deswegen ist es wichtig, eine
Fehlerbehandlung einzubauen. Allerdings solltest Du eher wie auf meiner
Testseite die Fehlernummer und -beschreibung einer allgemeinen Funktion
übergeben statt überall direkt eine angepasste Fehlermeldung in den Quelltext
zu schreiben - wie ich es hier der Einfachheit halber getan habe.
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
du hast mir sehr weiter geholfen :-)
Vielen Dank
Datenmaulwurf
Hallo
Das Script schein anzuspringen. Aber jetzt hab ich ein neues Problem...
Fehler: ActiveX-Komponente kann kein Objekt erstellen: 'getobject'
liegt das vllt an irgendwelchen sicherheitseinstellungen von ie?!?!?!?
ja, siehe z.B. meine Ausführungen auf meiner meine Testseite.
Freundliche Grüße
Vinzenz