我在应用程序中使用System.Windows.Forms.WebBrowser
控制:问题有关System.Windows.Forms.WebBrowser
private System.Windows.Forms.WebBrowser objBrowser;
任何地方我objBrowser
导航,我希望它有这个JavaScript函数:
function alert(message)
{
window.external.handleMessage(message);
}
那覆盖警报功能。
当我使用这样的:在Java脚本
private void objBrowser_DocumentCompleted(
object sender, WebBrowserDocumentCompletedEventArgs e)
{
objBrowser.Url = new Uri(
"javascript:function alert(message){window.external.handleMessage(message);};");
objBrowser.Document.InvokeScript("alert", new object[] { "hello" });//line 1
}
public void handleMessage(object obj)
{
string msg = obj.ToString();
}
报警功能的消息不会进入我的表格。但是,当我用这个:
private void button1_Click(object sender, EventArgs e)
{
objBrowser.Document.InvokeScript("alert", new object[] { "hello" });
}
private void objBrowser_DocumentCompleted(
object sender, WebBrowserDocumentCompletedEventArgs e)
{
objBrowser.Url = new Uri(
"javascript:function alert(message){window.external.handleMessage(message);};");
}
public void handleMessage(object obj)
{
string msg = obj.ToString();
}
,并点击与包含“你好”字符串对象执行button1
我的窗体的方法的handleMessage。
我想在objBrowser将导航的任何页面中的java脚本中覆盖警报函数。
我该怎么做?
@qau:我重新格式化您的代码,以避免滚动条。如果您不同意,可以查看我的更改并恢复。 – 2010-02-13 09:27:21