Włącz JavaScript dla lokalnych plików w VBA WebBrowser Control

Wydaje mi się raczej kłopotliwe, że IE7 domyślnie włącza JavaScript w strefie Internet, ale wyłącza go dla lokalnych plików HTML [Strefa Mój komputer] (Internet jest teraz bezpieczniejszy niż komputer lokalny?), ale mimo to...

Mam aplikację w VBA przy użyciu formantu WebBrowser, aby otworzyć lokalny plik HTML (powiedzmy, file:///C:\somefile.html), który zawiera JavaScript. Chciałbym, aby ten Javascript został wykonany. Czy jest jakiś sposób (z kodu VBA), aby zmusić przeglądarkę, aby zezwoliła na ten Javascript? (biorąc pod uwagę, że jest domyślnie wyłączone)

Idealnie byłoby, gdybym nie musiał polegać na jakiejkolwiek edycji rejestru lub kazać użytkownikowi aplikacji zmienić ustawienia Internet Explorera. Próbowałem również skonfigurować serwer sieciowy localhost i udostępnić plik z tego miejsca. Oczywiście działa doskonale, ponieważ IE uważa to za strefę internetową, ale chciałbym, abym nie musiał próbować kodować serwera WWW z VBA.

System to Windows XP z IE7.

Dziękuję


person zinga    schedule 10.02.2011    source źródło


Odpowiedzi (1)


No dobra, chyba nie jest to „prawdziwe” rozwiązanie, ale na moje potrzeby wystarcza. Można użyć funkcji WebBrowser.Document.parentWindow.execScript do wstrzyknięcia Javascriptu na stronę. Myślę, że możliwe jest zaimplementowanie tutaj czegoś podobnego do funkcji evalScripts prototypu, aby skutecznie ocenia wszystkie skrypty na stronie. Być może trzeba będzie dwukrotnie sprawdzić, czy skrypty nie zostały już dozwolone przez potencjalnie różne ustawienia zabezpieczeń. Nie wiem, jak to wpływa na połączone pliki skryptów.

(dla mojej własnej aplikacji kontroluję plik HTML, więc po prostu wyodrębniam cały Javascript do osobnego pliku i uruchamiam go za pomocą powyższej metody).

person zinga    schedule 10.02.2011