C#,WebBrowser,如何在页面上的任何其他脚本之前注入和执行JavaScript?

时间:2012-09-05 19:49:00

标签: c# javascript browser

我知道如何在load事件上将自己的脚本注入到网页中,但它并不总是按预期工作。有时页面会成功运行自己的脚本,这会让我的整个应用程序失败。我尝试禁用页面生成另一个浏览器窗口的可能性。我的服务器上运行了一个应用程序,当它随机启动Internet Explorer实例时 - 很快就会崩溃整个机器,这是一场灾难。

我创建了一个更改window.open方法的脚本,它完美地完成了这一操作 - 除了在我的代码执行之前页面弹出另一个窗口的情况。在我完成注入脚本之前有没有办法冻结JS?也许在DocumentCompleted事件之前有一种方法可以在早期注入我的脚本吗?但是如何?

1 个答案:

答案 0 :(得分:3)

这并没有直接回答你关于如何在浏览器中执行此操作的问题 - 但我知道Avast互联网安全所做的类似事情,它使用HTTP代理来完成。

这个想法是拦截通过网络接收的HTML页面,并将脚本注入HTML本身;因此,任何其他脚本都无法在它之前执行。

虽然这可能听起来很可怕 - 你可以使用支持非常出色的Fiddler HTTP调试器的技术 - FiddlerCore API