2011-04-25 59 views
2

我使用的.NET Framework 4.0(與WPF)試圖加載web瀏覽器對象(System.Windows.Controls.WebBrowser)內的本地HTML文件在本地嵌入的JavaScript和從遠程服務器加載。問題是,web瀏覽器對象內部沒有執行的JavaScript(AJAX與道場)加載時:C#WebBrowser對象中HTML/Javascript文件的本地加載無法正確加載?

webBrowser.Navigate("http://www.example.com/map.html"); 

樣品摘錄:

webBrowser.NavigateToString(LoadStringFromFile("map.html")); 

然而,當遠程加載它如下運行得很好在HTML文件中的Javascript代碼代碼:

<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.6"></script> 
<script type="text/javascript"> 
dojo.require("esri.map"); 

var map; 

var colorRGB = { "white": [255,255,255], "red": [255,0,0], "blue": [0,255,0] }; 

function init() 
{ 
    var streetLayer = new esri.layers.ArcGISTiledMapServiceLayer(
     "http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"); 

    var extent = new esri.geometry.Extent(-140.910, 11.267, -53.019, 64.002); 
    map = new esri.Map("map", { extent:extent }); 

    map.addLayer(streetLayer); 

    dojo.connect(map,"onLoad", processLocations); 
} 

任何人有任何的想法有什麼不對呢?

我的研究表明,它與IE瀏覽器和Internet區域的事,但一直未能確認。

回答

3

當我粘貼此成一個HTML文件,並在Internet Explorer打開,則顯示一條消息,因爲它阻斷的ActiveX /腳本的內容。更改Internet選項>高級>安全性>允許活動內容在我的電腦上的文件中運行。如果警告在IE中消失,那麼它應該在WebBrowser對象中工作

+4

因此,更新這篇文章,上面顯示的只是在瀏覽器中工作。設置這對WebBrowser對象沒有影響。解決方案是在html文件的頂部使用[標記的網頁](http://msdn.microsoft.com/en-us/library/ms537628%28VS.85%29.aspx)。 – 2011-05-02 03:11:34

3

WPF WebBrowser類具有一個靜態初始化程序,它可以爲整個過程啓用FEATURE_LOCALMACHINE_LOCKDOWN。您可以使用CoInternetSetFeatureEnabledFEATURE_LOCALMACHINE_LOCKDOWN背過的web瀏覽器導航事件。

此解決方案不要求您修改正在顯示的HTML文件,但禁用,你可能在顯示受信任的本地內容不希望一些安全功能。有關本地機器鎖定的更多信息,請參閱http://technet.microsoft.com/en-us/library/cc782928(v=ws.10).aspx

一個示例用法參見How to disable click sound in WebBrowser Control爲PInvoke的和https://github.com/TaoK/PoorMansTSqlFormatter/blob/d6b4f7bedc02ce1bf59acb16dd1f49609c216aa7/PoorMansTSqlFormatterDemo/FrameworkClassReplacements/CustomContentWebBrowser.cs

1

這裏是我的預防scriptwarnings解決方案:

WebBrowser.ScriptErrorsSuppressed = true; 

而且我已經把我的網站在我的Internet設置一個值得信賴的網站,我不知道是否有幫助,但scriptErrorsSuppressed財產是不夠我。

希望這會有所幫助。

0

對我來說,問題是:

步驟啓用Internet Explorer中的ActiveX控件:

1.Select工具 - > Internet選項菜單從IE瀏覽器。

2.從Internet選項對話框中選擇安全選項卡。

3.選擇適當的Web內容區域並單擊自定義級別。

4.Make要麼enableor提示符下ActiveX控件和插件可用下列選項:1.Download簽名的ActiveX控件

2。運行ActiveX控件和插件

3.Script ActiveX控件標記爲腳本

5.Click確定以保存安全性設置安全。

6.單擊確定以保存並關閉Internet選項對話框。

然後點擊不再顯示此消息。