我在應用程序中使用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