标签: webbrowser-control

如何在WebBrowser控件中提交表单?

如何使用C#创建程序以自动提交表单(在Windows应用程序中的Web浏览器中)?

.net c# webbrowser-control winforms

16
推荐指数
1
解决办法
4万
查看次数

如何检测WebBrowser控件中的javascript执行

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控件它可以处理.

javascript c# browser webbrowser-control dom-events

16
推荐指数
2
解决办法
1万
查看次数

如何使用WebBrowser控件以编程方式更改打印机设置?

我终于想出了如何在不提示用户或显示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)

c# printing webbrowser-control winforms

15
推荐指数
2
解决办法
3万
查看次数

如何修复"请求的资源正在使用中.(HRESULT异常:0x800700AA)"

我该如何解决这个错误?

"请求的资源正在使用中.(HRESULT异常:0x800700AA)".

在使用C#.NET中的WebBrowser控件导航到其他网站时出现.为什么?

.net c# webbrowser-control

15
推荐指数
1
解决办法
2万
查看次数

如何开发具有跨平台和跨浏览器兼容性的浏览器插件?

我公司目前有一个产品,它依赖于定制的内部ActiveX控件.它采用的技术本身就是跨平台设计,但我们的解决方案显然仅限于Windows上的Internet Explorer.

从长远来看,我们希望成为跨浏览器和跨平台(即支持Windows上的其他浏览器,支持Macintosh或Linux).

显然,如果我们想在Windows上支持Firefox,我需要为它编写一个插件.但如果我们想支持Macintosh,我该如何攻击它?是否可以编译在Mac上运行的Firefox插件版本?我不能在Mac上支持Safari吗?在平台上是否有任何跨浏览器的插件?(即,任何浏览器都可以运行其他浏览器的插件)

当人们想要通过需要跨平台和跨浏览器兼容的流程支持多个平台时,人们通常会做些什么?

activex cross-platform cross-browser webbrowser-control browser-plugin

15
推荐指数
2
解决办法
2万
查看次数

如何等待WebBrowser在VB.NET中完全加载?

我在我的VB.NET应用程序中使用WebBrowser控件来加载一些URL(~10-15)并将其HTML源保存在文本文件中.但是,我的代码不会写入当前页面的源而不是初始页面,因为它甚至在页面加载之前就被触发了.

在调用任何事件之前,我怎么能等到页面完全加载?

我尝试了以下代码,但它不起作用.

Do Until WebBrowser1.ReadyState = WebBrowserReadyState.Complete
   Application.DoEvents()
Loop
Run Code Online (Sandbox Code Playgroud)

vb.net webbrowser-control

15
推荐指数
2
解决办法
11万
查看次数

如何使用WebBrowser控件捕获JSON响应

我使用POST发布到网站的JSON响应URL WebBrowser.Navigate().

一切顺利,包括webBrowser1_DocumentCompleted()调用事件处理程序.

但是webBrowser1.Document,我没有获得可以以编程方式处理的"安静"响应(例如),而是收到"文件下载"对话框:

在此输入图像描述

如果我单击该Save按钮然后检查该文件,它将包含我期望的JSON响应.

但我希望程序在代码中捕获此JSON响应,而不显示该对话框并且必须单击该Save按钮.

如何使用WebBrowser控件捕获JSON响应?

注意:在发布这个问题之前,我搜索了所有我发现的是一个类似的问题,其中接受的答案并没有真正解释如何做到这一点(我已经处理了webBrowser1_DocumentCompleted).有小费吗?

更新:到目前为止,我的所有搜索都没有使用WebBrowser控件来获取JSON响应.也许我接近这完全错了?我错过了什么?

c# json webbrowser-control

15
推荐指数
3
解决办法
1万
查看次数

在控制台应用程序中使用WebBrowser

我想用它来调用网页上的一些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需要一个单独的线程,这需要一个不能返回任何值的静态方法.如何返回,比如说,docMain()这样我就可以用它做什么?

c# multithreading webbrowser-control

14
推荐指数
1
解决办法
4万
查看次数

WebBrowser控件 - 忽略SSL错误

许多小时的搜索都没有得出答案.我们正在寻找一种方法,.NET WebBrowser控件可以导航到具有SSL安全问题的页面(自签名证书或不匹配的主机名),而无需停止并显示错误页面:

http://imgur.com/Uqt7H

我已经看过很多帖子了:

如何在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警告页面的方法?

internet-explorer webbrowser-control

14
推荐指数
1
解决办法
1万
查看次数

将WPF webbrowser控件设置为使用IE10模式

如何设置WPF webbrowser控件以在iE10模式下呈现页面或在机器上安装更高版本.默认情况下,如果我在OS> Windows 7的任何机器上创建.net 4或.net 4.5应用程序,它只会在IE7模式下呈现html页面.(如果我错了,请更正)如果在目标机器上安装IE10,如何启用应用程序以IE10模式呈现html页面?任何帮助

wpf webbrowser-control wpf-controls

14
推荐指数
3
解决办法
2万
查看次数