2012-08-31 15 views
9

Opracowałem aplikację mobilną (w asp.net) i używam aplikacji WinForms z formantem WebBrowser do jej prezentacji.Obiekt nie obsługuje właściwości lub metody Kontrola WebBrowser

I moja strona główna Używam skrypt, aby ukryć pasek adresu:

<script type="text/javascript"> 
    window.addEventListener("load", function() { 
     // Set a timeout... 
     setTimeout(function() { 
      // Hide the address bar! 
      window.scrollTo(0, 1); 
     }, 0); 
    }); 
</script> 

To działało OK an kilka maszyn, ale dziś rano na nowej maszynie I napotkał okienko podczas wczytywania strony:

enter image description here

dana maszyna ma zainstalowany IE9 i mam ustawienie Disable Script Debugging sprawdzone.

Jaki jest najlepszy sposób rozwiązania tego problemu. Czy mogę dodać pewne warunki w JS, aby nie były wykonywane podczas działania w IE?

+1

Wygląda na to, że narzędzia IE9 Tools> Options Settings nie są używane przez kontrolkę WebBrowser. Więc nawet jeśli opcja "Wyłącz debugowanie skryptów" jest zaznaczona w IE, to ustawienie nie jest propagowane do formantu. Udało mi się wyłączyć to w sterowaniu za pomocą 'WebBrowser.ScriptErrorsSuppressed = True' –

Odpowiedz

22

Wiem, że ten problem pochodzi z 2012 roku, ale jest na to odpowiedź.

Na początku dokumentu <head> gdzie skrypt dodaje trzeba napisać

<meta http-equiv="X-UA-Compatible" content="IE=edge"> 

WinForm formantu WebBrowser używa Internet Explorera, ale trzeba wymusić najnowszą wersję tam. Na przykład jeśli używasz jQuery 2+, wymaga to IE 9+, więc musisz użyć przynajmniej wersji 9 lub nowszej.

+0

ratownik życia! dzięki! – dan

0

Sterowanie przeglądarką jest częścią samego Internet Explorera. I Internet Explorer nie obsługuje metody window.addEventListener. Zamiast tego należy użyć metody window.attachEvent.

Więc skrypt na swojej stronie będzie czytać jak

window.attachEvent("load", function() { 
    // Set a timeout... 
    setTimeout(function() { 
     // Hide the address bar! 
     window.scrollTo(0, 1); 
    }, 0); 
}); 

nadzieję, że to będzie Ci pomóc!

+0

http://msdn.microsoft.com/en-us/library/ie/ff975245%28v=vs.85%29.aspx sugerowałby, że IE9 obsługuje addEventListener. Czy kontrolka WebBrowser używa IE9, jeśli jest zainstalowana? –

1

Sterowanie przeglądarką nie obsługuje jquery v2.

Użyj jquery 1.9.1.

<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
Powiązane problemy