解决方案 »
- AspxGridView控件怎样取某一个单元的值
- 据说,windows8中,c#与c++真正意义上的平起平坐了,是真的吗?
- PPT文本框的名称在哪里设置
- 关于net程序并发数的问题
- 求一个第三方控件的源代码MagicLibrary 需要免费的版本,高分酬谢
- C# 类中写的公共函数的问题:在类中想写一个公共函数供其它地方调用,说“New”受保护?
- C#关于排序的问题 求助~
- rtf转换html
- 分不是问题:使用Remoting时的一个问题
- c#窗体label透明问题
- WPF初学数据绑定,为什么这个程序运行时只绑定了一次??
- 请帮我看看上面有什么错误吗?(目的打开txt,把txt存到datatable里)
我用webBrowser控件登陆并打开了邮箱,点击其中一封邮件,正常在IE内,新邮件会在新窗口中打开,现在在webBrowser内打开邮件,会自动由IE打开,IE窗口会定位在登陆界面而不是要打开的邮件界面;
我希望webBrowser的Session可以和IE共享或者可以不用IE打开也能实现共享;
private void WB1_NewWindow(object sender, CancelEventArgs e)
{
e.Cancel = true;
try
{
string url = this.WB1.Document.ActiveElement.GetAttribute("href"); this.WB2.Navigate(url);
}
catch { }
}
这种方案我已经试过了,对于有连接地址的可以实现,但对于javaScript按钮,实际链接的不是一个地址,而是运行一个函数就没有办法了;
这种方案我已经试过了,对于有连接地址的可以实现,但对于javaScript按钮,实际链接的不是一个地址,而是运行一个函数就没有办法了;下面这种办法,对于javascript按钮也可以实现
var nativeBrowser = (SHDocVw.WebBrowser)webBrowser1.ActiveXInstance;
nativeBrowser.NewWindow2 += new SHDocVw.DWebBrowserEvents2_NewWindow2EventHandler(nativeBrowser_NewWindow2);
下面是打开新窗口的事件
void nativeBrowser_NewWindow2(ref object ppDisp, ref bool Cancel)
{
Form popup = new Form3();
popup.Show(this);
ppDisp = popup.webBrowser1.ActiveXInstance;
}
form3里面放一个webBrowser控件,并且设置为public就OK了,需要引用SHDocVw.dll,从哪里引用可以度娘
现在的问题是:
1、我点完按钮,会跳出两个Form3出来;
2、我弹出窗口内有个按钮是关闭浏览器窗口,点确定后不能关闭(因为是我的windows Form);加分;
2.想要关闭,可以直接关闭Form3啊,或者直接看下关闭按钮的源代码,执行windows.close()的js函数也可以;
因为调用的是一个别人的网站,所以不能修改网站关闭源码,只能在Form上去捕获然后关闭,请给个例子;非常感谢!!
void nativeBrowser_NewWindow2(ref object ppDisp, ref bool Cancel)
{
Form popup = new Form3();
popup.Show(this);
ppDisp = popup.webBrowser1.ActiveXInstance;
}
修改为:
void nativeBrowser_NewWindow2(ref object ppDisp, ref bool Cancel)
{ ppDisp = WB2.ActiveXInstance;
}
就可以了!
例如:
<button onclick="window.external.CloseForm()" >javascript访问C#代码</button>
然后form3里面加入:
public void CloseForm()
{
this.Close();
}
如果网页不是你做的,那么就麻烦点了,你得找到那个'关闭网页'html标签,然后给修改他的click方法
1、这个网页是我们公司买 的一个外部的产品,没有源码,所以需要去获取到它的关闭事件然后怎么把窗口关闭;
2、还没试楼上的在同一个form内设置两个webBrowser的方法,不过我想即便可以,两个webBrowser应该怎么显示呢?
private void Window_Unload(object sender, HtmlElementEventArgs e)
{
if (this.webBrowser1.Document == null)
this.Close(); }
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.Document.Window.Unload += new HtmlElementEventHandler(Window_Unload);
}
谢谢楼上的几个兄弟,结帖;