首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C# WebBrowser对象中HTML/Javascript文件的本地加载不正确吗?

C# WebBrowser对象中HTML/Javascript文件的本地加载不正确吗?
EN

Stack Overflow用户
提问于 2011-04-25 06:28:55
回答 4查看 12.8K关注 0票数 2

我正在使用.NET Framework4.0( WPF)尝试在WebBrowser对象(System.Windows.Controls.WebBrowser)中加载一个本地HTML,该文件具有本地嵌入的javascript并从远程服务器加载。问题是,当加载时,javascript (带有dojo的ajax)没有在WebBrowser对象中执行:

代码语言:javascript
运行
复制
webBrowser.NavigateToString(LoadStringFromFile("map.html"));

但是,当远程加载时,它运行得很好,如下所示:

代码语言:javascript
运行
复制
webBrowser.Navigate("http://www.example.com/map.html");

html文件中Javascript代码的示例摘录代码:

代码语言: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和互联网区域有关,但一直无法证实。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-25 06:47:32

当我将其粘贴到html文件中并在上打开时,它会显示一条消息,说明它阻止了activex/script内容。更改Internet选项>高级>安全>允许活动内容在我的计算机上的文件中运行。如果警告在IE中消失,那么它应该在WebBrowser对象中工作。

票数 3
EN

Stack Overflow用户

发布于 2013-04-19 12:28:52

WPF WebBrowser类具有一个静态初始化器,它支持整个进程的FEATURE_LOCALMACHINE_LOCKDOWN。您可以使用CoInternetSetFeatureEnabledFEATURE_LOCALMACHINE_LOCKDOWN导航事件上关闭FEATURE_LOCALMACHINE_LOCKDOWN

此解决方案不要求您修改正在显示的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

票数 3
EN

Stack Overflow用户

发布于 2013-12-15 14:53:45

以下是我预防剧本的解决方案:

代码语言:javascript
运行
复制
WebBrowser.ScriptErrorsSuppressed = true;

此外,我已经把我的网站作为一个可信的网站在我的互联网设置,我不知道这是否有帮助,但scriptErrorsSuppressed的属性对我来说已经足够了。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5775853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档