如何使用C#创建程序以自动提交表单(在Windows应用程序中的Web浏览器中)?
我WebBrowser在C#应用程序中有一个控件.webbrowser在用户的控制之下,也就是说,他可以加载他的计算机可以在Web上访问的任何网页(当然受限于代理,主机文件等).
我需要知道并在webbrowser组件中加载的页面内有javascript调用时收到通知.
第一个例子:给出这样的链接
<a href="javascript:void(0)" onclick="jsFunct();">test</a>
Run Code Online (Sandbox Code Playgroud)
当用户点击链接时,我需要知道已经调用了函数"jsFunct".
第二个例子:给出一个叫的话
<script type="text/javascript">
window.setTimeout("jsFunct()", 1000);
</script>
Run Code Online (Sandbox Code Playgroud)
我需要知道,在执行脚本1秒后,调用了函数jsFunct.
最好的方法是在调用函数时触发事件.如果事件可以执行javascript代码,或者至少是参数中的函数名称,那也会很棒.
编辑:
即使问题与webbrowser组件有关,任何允许用户检测javascript激活(甚至通过js)的东西也没关系,能够注入处理javascript事件的js并将其传递给触发某些事件的wb控件它可以处理.
我终于想出了如何在不提示用户或显示IE窗口的情况下打印转换后的XML,但现在我需要指定一些副本以及可能的其他打印机设置.
有没有办法以编程方式更改WebBrowser控件上的打印机设置?
有问题的代码:
private static void PrintReport(string reportFilename)
{
WebBrowser browser = new WebBrowser();
browser.DocumentCompleted += browser_DocumentCompleted;
browser.Navigate(reportFilename);
}
private static void browser_DocumentCompleted
(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser browser = sender as WebBrowser;
if (null == browser)
{
return;
}
browser.Print();
browser.Dispose();
}
Run Code Online (Sandbox Code Playgroud) 我该如何解决这个错误?
"请求的资源正在使用中.(HRESULT异常:0x800700AA)".
在使用C#.NET中的WebBrowser控件导航到其他网站时出现.为什么?
我公司目前有一个产品,它依赖于定制的内部ActiveX控件.它采用的技术本身就是跨平台设计,但我们的解决方案显然仅限于Windows上的Internet Explorer.
从长远来看,我们希望成为跨浏览器和跨平台(即支持Windows上的其他浏览器,支持Macintosh或Linux).
显然,如果我们想在Windows上支持Firefox,我需要为它编写一个插件.但如果我们想支持Macintosh,我该如何攻击它?是否可以编译在Mac上运行的Firefox插件版本?我不能在Mac上支持Safari吗?在平台上是否有任何跨浏览器的插件?(即,任何浏览器都可以运行其他浏览器的插件)
当人们想要通过需要跨平台和跨浏览器兼容的流程支持多个平台时,人们通常会做些什么?
activex cross-platform cross-browser webbrowser-control browser-plugin
我在我的VB.NET应用程序中使用WebBrowser控件来加载一些URL(~10-15)并将其HTML源保存在文本文件中.但是,我的代码不会写入当前页面的源而不是初始页面,因为它甚至在页面加载之前就被触发了.
在调用任何事件之前,我怎么能等到页面完全加载?
我尝试了以下代码,但它不起作用.
Do Until WebBrowser1.ReadyState = WebBrowserReadyState.Complete
Application.DoEvents()
Loop
Run Code Online (Sandbox Code Playgroud) 我使用POST发布到网站的JSON响应URL WebBrowser.Navigate().
一切顺利,包括webBrowser1_DocumentCompleted()调用事件处理程序.
但是webBrowser1.Document,我没有获得可以以编程方式处理的"安静"响应(例如),而是收到"文件下载"对话框:

如果我单击该Save按钮然后检查该文件,它将包含我期望的JSON响应.
但我希望程序在代码中捕获此JSON响应,而不显示该对话框并且必须单击该Save按钮.
如何使用WebBrowser控件捕获JSON响应?
注意:在发布这个问题之前,我搜索了所有我发现的是一个类似的问题,其中接受的答案并没有真正解释如何做到这一点(我已经处理了webBrowser1_DocumentCompleted).有小费吗?
更新:到目前为止,我的所有搜索都没有使用WebBrowser控件来获取JSON响应.也许我接近这完全错了?我错过了什么?
我想用它来调用网页上的一些JS脚本.我有这个:
static void Stuff()
{
WebBrowser browser = new WebBrowser();
browser.Navigate("http://www.iana.org/domains/example/");
HtmlDocument doc = browser.Document;
//doc.InvokeScript("someScript");
Console.WriteLine(doc.ToString());
}
static void Main(string[] args)
{
Console.WriteLine("hi");
var t = new Thread(Stuff);
t.SetApartmentState(ApartmentState.STA);
t.Start();
}
Run Code Online (Sandbox Code Playgroud)
问题1:当我尝试获取时,我得到"对象引用未设置"异常doc.ToString().为什么?
问题2:如何从HTML文档中将一些数据导入主程序?WebBrowser需要一个单独的线程,这需要一个不能返回任何值的静态方法.如何返回,比如说,doc在Main()这样我就可以用它做什么?
许多小时的搜索都没有得出答案.我们正在寻找一种方法,.NET WebBrowser控件可以导航到具有SSL安全问题的页面(自签名证书或不匹配的主机名),而无需停止并显示错误页面:

我已经看过很多帖子了:
如何在Webbrowser控件中禁用"安全警报"窗口 - 不起作用,因为WebBrowser显然不使用ServicePointManager
抑制托管WebBrowser控件对话框 - 取决于知道窗口标题,这对非英语用户不起作用
C#WebBrowser控件 - 忽略网站安全警告 - 这是一个重复关闭,答案只是参考上面的链接.
大多数表单帖子建议实现我已经完成的IInternetSecurityManager,但无济于事.
对所有URL(指定URLZONE_LOCAL_MACHINE或URLZONE_TRUSTED)的GetSecurityId的常量值进行响应不起作用.
以下内容没有帮助:
public unsafe int MapUrlToZone(string url, int* pdwZone, int dwFlags)
{
*pdwZone = 3; // URLZONE_TRUSTED;
return Win32.S_OK;
}
Run Code Online (Sandbox Code Playgroud)
最后,我似乎无法找到ProcessUrlAction产生任何效果的方法:
public unsafe int ProcessUrlAction(string url, int dwAction, byte* pPolicy, int cbPolicy,
byte* pContext, int cbContext, int dwFlags, int dwReserved)
{
*((int*)pPolicy) = (int)Win32.UrlPolicy.URLPOLICY_ALLOW;
return Win32.S_OK;
}
Run Code Online (Sandbox Code Playgroud)
有没有人成功找到通过SSL警告页面的方法?
如何设置WPF webbrowser控件以在iE10模式下呈现页面或在机器上安装更高版本.默认情况下,如果我在OS> Windows 7的任何机器上创建.net 4或.net 4.5应用程序,它只会在IE7模式下呈现html页面.(如果我错了,请更正)如果在目标机器上安装IE10,如何启用应用程序以IE10模式呈现html页面?任何帮助
c# ×6
.net ×2
winforms ×2
activex ×1
browser ×1
dom-events ×1
javascript ×1
json ×1
printing ×1
vb.net ×1
wpf ×1
wpf-controls ×1