110,566
社区成员
发帖
与我相关
我的任务
分享
public partial class WebBrowserWindow : Window
{
public Action webHandler;
public Boolean isMove = false;
public WebBrowserWindow()
{
InitializeComponent();
this.webBrowser.ObjectForScripting = new ScriptObject(this);
this.webBrowser.LoadCompleted += new System.Windows.Navigation.LoadCompletedEventHandler(webBrowser_LoadCompleted);
//Console.WriteLine("webBrowser"+webBrowser.Ver)
this.webBrowser.Navigate("file:///C:\\test.html");
}
void webBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
if (this.webHandler != null)
{
this.webHandler();
this.webHandler = null;
}
}
//单独调用可以
private void btn2_Click(object sender, RoutedEventArgs e)
{
this.webBrowser.InvokeScript("showmsg", new object[] { "{'center':{'lng':12.232,'lat':13.232},'zoom':14}", "{'center2':{'lng':12.232,'lat':13.232},'zoom':14}" });
}
public void toClient(string type)
{
try
{
webBrowser.InvokeScript("showmsg", new object[] { "{'center':{'lng':12.232,'lat':13.232},'zoom':14}" });
}
catch (Exception e)
{
Console.WriteLine("Error" + e.Message);//提示错误未知名称
}
}
[ComVisible(true)]
public class ScriptObject
{
private Window instance;
public ScriptObject(Window instance)
{
this.instance = instance;
}
public void doSomething(string msg)
{
MessageBox.Show(msg, "receive from", MessageBoxButton.OK, MessageBoxImage.Information);
WebBrowserWindow window = new WebBrowserWindow();
window.toClient(""); // 是不是外部调用有问题?
Console.WriteLine("end.....");
}
}
}
<script type="text/javascript">
(function (window) {
var searcher = {
showmsg: function (msg1) {
alert('msg1:'+msg1);
}
};
window.searcher = searcher;
})(window);
function showmsg(msg1) {
searcher.showmsg(msg1);
}
function invekeServer(traits){
window.external.doSomething("");
return false;
}
</script>