c# - 如何防止浏览器控件中的弹出窗口、新标签、新窗口和消息框?

标签 c# .net vb.net controls webbrowser-control

这是 HTML 代码:

<script type='text/javascript'>//<![CDATA[ 
    window.onload=function(){
    alert('hi');
    }//]]>  

</script>

不仅是警报、弹出窗口、新标签、新窗口,还有任何导致焦点改变的东西。
换句话说,我不希望 WebBrowser 控件获得焦点或更改当前焦点。

正在寻找不损害任何网页的解决方案(我需要启用 javascript)。

最佳答案

理论上,您应该实现 IProtectFocus,但显然它存在问题:

http://social.msdn.microsoft.com/Forums/windows/en-US/211733a0-af84-4cc4-9851-2f19def7aedd/iprotectfocus-and-allowfocuschange-not-working-on-webbrowser?forum=winforms

另一种选择可能是实现 CBTHook , 如果获得焦点的窗口是 WebBrowser 对象的子窗口,则处理 HCBT_SETFOCUS 并拒绝它(返回 1 以防止它发生)。

免责声明:我自己没有尝试过以上任何一种。

关于c# - 如何防止浏览器控件中的弹出窗口、新标签、新窗口和消息框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21898300/

相关文章:

c# - 在 .NET 中将属性公开为变体以进行互操作

c# - 在Unity中制作无尽的戒指视觉效果

c# - 如何引入只在 Debug模式下执行的语句和代码行?

c# - 为什么我在这段代码上得到 "parameter is not valid"异常?

vb.net - 在 VB.net 中加载 GET/POST 请求的结果

.net - 线程加载(等待)屏幕

c# - 下载时更新对话框表单

c# - 查询或数据库错误

c# - 如何查明 VSTO 中的应用程序是否繁忙

.net - Npgsql Minimum Pool Size 似乎没有被考虑在内