2012-08-31 2 views
9

Ich habe eine mobile App (in asp.net) entwickelt und verwende eine WinForms-Anwendung mit dem WebBrowser-Steuerelement, um es zu demontieren.Objekt unterstützt keine Eigenschaft oder Methode WebBrowser Control

ich meine Haupt-Seite, die ich ein Skript bin mit der Adressleiste zu verbergen:

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

Diese ok ein mehrere Maschinen gearbeitet hat, aber heute Morgen auf einer neuen Maschine, die ich ein Pop-up auf, wenn die Seite geladen wird:

enter image description here

die betreffende Maschine hat IE9 installiert und ich habe die Disable Script Debugging Einstellung überprüft.

Was ist der beste Weg, um dieses Problem anzugehen. Kann ich eine Bedingung in der JS hinzufügen, die nicht ausgeführt wird, wenn sie in IE ausgeführt wird?

+1

Es scheint, dass die IE9 Tools> Optionen Einstellungen nicht vom WebBrowser-Steuerelement verwendet werden. Auch wenn "Skript-Debugging deaktivieren" im IE aktiviert ist, wird diese Einstellung nicht an das Steuerelement weitergegeben. Ich habe es geschafft, dies in der Steuerung ausschalten mit 'WebBrowser.ScriptErrorsSuppressed = True' –

Antwort

22

Ich weiß, dass dieses Problem von 2012 ist, aber es gibt eine Antwort dafür.

An der Spitze des <head> Dokument, in dem Skript

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

WinForms-WebBrowser-Steuerelement schreiben müssen, ist hinzugefügt wird mit dem Internet Explorer, aber Sie müssen es die neueste Version erzwingen. Für z. Wenn Sie jQuery 2+ verwenden, ist IE 9+ erforderlich, sodass Sie mindestens Version 9 oder höher verwenden müssen.

+0

lebensretter! Vielen Dank! – dan

0

Das Webbrowser-Steuerelement ist ein Teil des Internet Explorers. Und Internet Explorer unterstützt die window.addEventListener Methode nicht. Verwenden Sie stattdessen die Methode window.attachEvent.

So das Skript in Ihre Seite wie

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

Hoffnung lesen Sie diese Ihnen helfen würde!

+0

http://msdn.microsoft.com/en-us/library/ie/ff975245%28v = vs.85%29.aspx würde vorschlagen, dass IE9 addEventListener unterstützt. Verwendet das WebBrowser-Steuerelement IE9, wenn es installiert ist? –

1

Webbrowser-Steuerelement unterstützt nicht jquery v2.

Verwenden Sie die jquery 1.9.1.

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