wpfWebBrowser相关问题
wpf WebBrowser相关问题
编程环境VS2015,使⽤WebBrowser控件加载本地HTML⽂件,在HTML⽂件中调⽤百度地图显⽰位置等,遇到以下问题:
1.加载本地包含脚本语⾔的HTML⽂件时,页⾯出现安全提⽰:“为帮助保护你的安全,您的Web浏览器已经限制此⽂件显⽰可能访问
您的计算机活动内容。单击此处查看选项”
2.JavaScript访问本地数据库,总是弹出对话框
1.百度解决办法,以下⽅法亲测可⽤
先将html⽂件加⼊项⽬。项⽬->添加现有项
在属性⼯具栏,将⽂件的“⽣成操作”属性改为Resource
在MainWindow类中添加⼀下代码
Uri url = new Uri(@"pack://application:,,,/map_1.html");
Stream source = Application.GetResourceStream(url).Stream;
WebBrowser1.NavigateToStream(source);//导航到包含⽂档的流
2.想⽤JavaScript将数据保存到本地数据库,每次都要弹出安全对话框,于是⽤JavaScript调⽤C#函数,⽤C#保存数据。
html⽂件加载后添加代码
WebBrowser1.ObjectForScripting = new JsInvokeCsharp();
C#中定义类和⽅法
[System.Runtime.InteropServices.ComVisible(true)]//将该⾃定义类设为com可访问
public class JsInvokeCsharp
{
public void UpdateCoordToSql(string str)
{
//数据库存储逻辑代码
}
}
JavaScript调⽤⽅法:
注意:
WebBrowser1.ObjectForScripting = this; 会报错,需重新定义⼀个类:如JsInvokeCsharp,并把js要调⽤的⽅法放在这个类中。
题外话,如果要在C#中调⽤JavaScript函数,可利⽤WebBrowser控件的
JavaScript定义⽅法
function addCustomMarker(str) {
//逻辑代码
}
web浏览器在哪里打开C#调⽤⽅法
WebBrowser1.InvokeScript("addCustomMarker", str);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论