2011-08-28 52 views
2

我有一個連接到www.Jango.com並使用Web瀏覽器控件的應用程序。但是,當使用.NET瀏覽器控件時,我經常收到腳本錯誤「無法獲取屬性值msIsSideMode':object爲null或undefined」,因此網站的其餘部分無法加載。.NET 4.0 Web瀏覽器控件和msIsSiteMode javascript錯誤

這可以通過創建一個簡單的Windows窗體應用程序,添加一個WebBrowser控件並導航到jango.com轉載

據我所知道的,Web瀏覽器控件呈現基於IE的版本網站安裝在你的機器上。在我的機器上我安裝了IE9。方法msIsSiteMode似乎是一種IE方法,它告訴天氣當前頁面是作爲固定站點啓動的。由於jango.com非常基於JavaScript,因此這個空值會導致網站停止正常運行。但是,在Internet Explorer中導航到jango.com可以很好地工作,不會產生錯誤。

是否有人知道解決此問題的方法,例如讓我的應用程序設置值?使Web瀏覽器控件呈現爲不同的版本。任何建議,我可以接受任何事情,除了改變我的機器上的IE版本,因爲這不是一個選項。

回答

1

在WebBrowser控件上將ScriptErrorsSuppressed屬性設置爲True。

enter image description here

編輯:更詳細的信息

using System.Runtime.InteropServices; 
using System.Security.Permissions; 

[ComVisibleAttribute(true)] 
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")] 
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
     webBrowser1.ObjectForScripting = this; 

    } 
... 
} 

Read here一個比較另類的

試試這個託管Web用戶控件在窗體上。

+0

這將抑制所以它不會顯示,但該網站將仍然無法正常工作,因爲這個錯誤。換句話說,錯誤仍然發生在我抑制或不抑制的天氣。 –

+0

@Sam Plus Plus:檢查我的編輯。我在我的計算機上測試了沒有抑制WebBrowserControl中的錯誤,我不再收到msIsSiteMode()調用的問題。此外,檢查此:http://stackoverflow.com/questions/305915/winforms-how-do-i-execute-c-application-code-from-inside-webbrowser-control – Icarus

+0

我最終也嘗試這個,以及我也能夠解決問題。然而,我最終跑到其他問題,並最終使用基於Gecko的Web瀏覽器控制。你是對的,雖然這回答了我的問題。 –

0

我在我的機器上安裝了IE9的WebBrower Control中看到類似的問題。在我的情況下,我有兩個帶WebBrowser控件的窗體。其中一個是用來加載從其他彈出。我得到腳本錯誤彈出one.its只與IE9