arduino
Goto Top

IE 10 via vbscript starten

Hallo

Seit Tagen versuche ich ein Script wieder zum Laufen zu bringen.
Das Script soll den IE starten und den Inhalt der Homepage als Variable reinkopieren (Script unten ist vereinfacht). Dieses (bereits etwas ältere) Script funktioniert nur bis IE 8. Den IE 10 kann ich starten und die Homepage wird angezeigt, jedoch ignoriert er den "<meta http-equiv=X-UA-Compatible content=IE=8>" bzw setzt er den Dokumentenmodus auf IE 5 / Quirks. Wenn ich das den IE starte und die Seite via document.navigate "seite.htm" aufrufe, funktioniert es.

Hat jemand eine Idee, an was das liegen könnte?


Option Explicit
Dim strHTMLHead, strHTMLBody
Dim objIE

strHTMLHead = "<meta http-equiv=X-UA-Compatible content=IE=8>"
strHTMLBody = "<div id=text> VBScript Formular... </div>"

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate "about:blank"

objIE.Document.Head.InnerHTML = strHTMLHead
objIE.Document.Body.InnerHTML = strHTMLBody

196a532605b98c8f449eb7d1183d157d
9d4da590020b7c121f9dd694722a5a63

Content-ID: 221986

Url: https://administrator.de/contentid/221986

Ausgedruckt am: 25.11.2024 um 14:11 Uhr

colinardo
colinardo 14.11.2013 aktualisiert um 16:51:34 Uhr
Goto Top
Hallo arduino,
das kommt daher das die Seite "about:blank" keinen <!DOCTYPE> besitzt. Solche Dokumente ruft der IE immer im Quirks-Mode auf. Du musst also eine leere Seite z.B. mit "<!DOCTYPE html>" zu Beginn der Seite erstellen in der du zuätzlich den Compatibility-Flag setzt. Auf diese Seite navigierst du dann mit VBS.
Da der IE das COMPATIBILITY META FLAG nur auswertet wenn die Seite geladen wird, wirst du den Mode mit nachträglichem Einfügen nie umstellen können!
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<title>Test</title>
</head>
<body>
</body>
</html>
Grüße Uwe
arduino
arduino 14.11.2013 um 16:56:00 Uhr
Goto Top
Du musst also eine leere Seite z.B. mit "<DOCTYPE html>" zu Beginn der Seite erstellen

Hallo Uwe
Danke für deine Antwort, diesen Gedanken hatte ich auch schon. Das Problem dabei ist, dass ich nicht all zu viel Ahnung von VBS hab. So weit bin ich gekommen:

objIE.Document.Head.InnerHTML = Variable schreibt die Variable in den Head bzw Document.Body... in den Body-Tag.
Wie aber bringe ich ihn dazu, diesen Tag über den Head zu setzen?

Gruss arduino
colinardo
colinardo 14.11.2013 aktualisiert um 16:59:45 Uhr
Goto Top
Zitat von @arduino:
objIE.Document.Head.InnerHTML = Variable schreibt die Variable in den Head bzw Document.Body... in den Body-Tag.
Wie aber bringe ich ihn dazu, diesen Tag über den Head zu setzen?
Wie geschrieben, auch wenn du dies schaffen würdest, würde es dir nichts bringen, denn der IE wertet das DOCTYPE nur beim ersten Laden der Seite aus!
arduino
arduino 21.11.2013 um 09:30:36 Uhr
Goto Top
Da dies nur ein kleiner eines grösseren Verwaltungsscripts ist, und VBScript ab dem IE 11 gar nicht mehr unterstützt wird, werde das Problem mit Powershell lösen (zumindest mal versuchen)