2011-04-25 58 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选项对话框。

然后点击不再显示此消息。