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-Key: 221986

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

Printed on: April 20, 2024 at 02:04 o'clock

Member: colinardo
colinardo Nov 14, 2013 updated at 15:51:34 (UTC)
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
Member: arduino
arduino Nov 14, 2013 at 15:56:00 (UTC)
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
Member: colinardo
colinardo Nov 14, 2013 updated at 15:59:45 (UTC)
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!
Member: arduino
arduino Nov 21, 2013 at 08:30:36 (UTC)
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)