问题标签 [iwebbrowser2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 通过 IWebBrowser2 接口检测是否启用了 cookie
是否可以通过IWebBrowser2 接口或其他WebBrowser Control C/C++ 接口检测 Internet Explorer 中是否启用了 cookie ?我看不到任何明显的方法,但想知道是否有一种微妙的方法。
internet-explorer - 使用 IWebBrowser2 时禁用“Internet Explorer 当前不是您的默认浏览器”警告
我有一个启动 IWebBrowser2 窗口的 MFC 应用程序。在 Internet Explorer 不是其默认浏览器的用户计算机上,他们会收到以下警告消息
有没有办法在我启动 IWebBrowser2 窗口之前禁用此检查?
bho - 如何通过 BHO (C#) 拍摄 IE 网页的快照
我正在尝试在 C# 中构建一个 IE BHO,以获取 IE 浏览器中加载的网页的快照。这是我正在尝试做的事情:
此外,我 p/invoke 以下 COM 方法:
现在当我拍摄快照时:
我打电话 CaptureWebScreenImage((IHTMLDocument2) webBrowser.document);
公共静态图像捕获WebScreenImage(IHTMLDocument2 myDoc){
}
我没有得到网页的图像。相反,我得到的是黑色背景的图像。我不确定这是否是正确的做法,但我在网上发现 IViewObject::Draw 方法用于在 IE 中获取网页的图像。
我之前使用 Native PrintWindow() 方法进行图像捕获,如以下代码项目页面中所述 - http://www.codeproject.com/KB/graphics/IECapture.aspx
但是图像大小是巨大的!我试图看看是否可以通过使用其他技术来减小尺寸。如果有人能指出我上面代码中的错误(我相信会有很多),那就太好了。
谢谢,卡皮尔
internet-explorer - 在 IE 中挂钩 http/https 协议会导致 GET 请求是顺序的
我正在使用PassthruAPP方法连接到 IE 发出的 HTTP/HTTPS 请求。
它在大多数情况下运行良好,但是我注意到了一个问题。一次只有一个下载线程处于活动状态,通常 IE 使用两个下载线程。我可以看到创建了两个 IInternetProtocol 对象,但 IE 一次只使用一个。
这发生在 IE7 上,我还没有尝试过其他版本。
问题似乎是 IE 在IInternetSession::RegisterNameSpace
调用其任何默认处理程序时会退回到一次下载一个项目。即使我正在注册HTTPS处理程序,下面的代码也会导致HTTP下载是连续的。注册 'file://' 会导致同样的问题。
页面上的前几项总是会发生这种情况,但似乎在发布文档完成后,可能会再次发生并发下载。例如,在页面完成加载后执行的 Javascript 代码可以同时加载图像。
encoding - IWebBrowser:从流中加载 html 时如何指定编码?
使用Microsoft 提供的示例代码中的概念,使用 Web 浏览器的IPersistStreamInit接口将 HTML 内容从IStream加载到IWebBrowser :
伪代码:
如何在 IStream 中指定 html 的编码?IStream 将包含一系列字节,但问题是这些字节代表什么?例如,它们可以包含以下字节:
- 每个字节代表当前 Windows 代码页中的一个字符(例如 1252)
- 每个字节可以代表 ISO-8859-1 字符集中的一个字符
- 字节可以表示 UTF-8 编码的字符
- 每 2 个字节可以代表一个字符,使用 UTF-16 编码
在我的特殊情况下,我为 IWebBrowser 提供了一个包含一系列双字节字符(UTF-16)的 IStream,但浏览器(错误地)认为 UTF-8 编码有效。这会导致乱码。
解决方法
虽然问题询问如何指定编码,但在我的特定情况下,仅使用 UTF-16 编码,有一个简单的解决方法。添加 0xFEFF 字节顺序标记 (BOM) 表示文本是 UTF-16 unicode。即然后使用正确的编码并正确显示文本。
当然,如果文本被编码,那将不起作用,例如:
- UCS-2
- UCS-4
- ISO-10646-UCS-2
- UNICODE-1-1-UTF-8
- UNICODE-2-0-UTF-16
- UNICODE-2-0-UTF-8
- 美国ASCII
- ISO-8859-1
- ISO-8859-2
- ISO-8859-3
- ISO-8859-4
- ISO-8859-5
- ISO-8859-6
- ISO-8859-7
- ISO-8859-8
- ISO-8859-9
- WINDOWS-1250
- WINDOWS-1251
- WINDOWS-1252
- WINDOWS-1253
- WINDOWS-1254
- WINDOWS-1255
- WINDOWS-1256
- WINDOWS-1257
- WINDOWS-1258
c# - 使用 window.open 和 WebBrowser 控件调整 Javascript 大小
我正在使用 WPF WebBrowser 控件并使用以下代码处理 NewWindow3 事件:
使用 window.open 导航时如何处理 javascript 大小调整,如下所示:
无论如何在 NewWindow3 事件处理程序中获取调用者请求的高度和宽度?
winapi - IWebBrowser2 控件中的 Tab 键支持
我有一个使用直接 C++ 的嵌入式 IWebBrowser2 控件(有窗口,而不是无窗口),当有人按 Tab 键在浏览器中的字段之间切换时,它会将焦点从 Web 浏览器中跳出来。
关于我需要实施什么或我可能搞砸的任何想法?
谢谢!
winapi - IWebBrowser2 控件的清单或主题/样式?
IWebBrowser2 控件具有正方形的密码编辑框。这发生在很多年前,如果你在一台 XP 机器上,并且你有一个没有清单文件的密码编辑字段,你会得到正方形(没有找到他们用那种字体放在那里的 * 字符)。我的应用程序有一个清单文件。但是我不知道如何给出清单或设置所创建控件的主题或样式。有任何想法吗?
谢谢!
mfc - Navigate2 方法返回 S_OK 后卡在 READYSTATE_LOADING 的 READYSTATE
我正在开发一个 MFC 文档视图架构应用程序,它具有多个文档和视图以及一个选项卡式窗口界面。
我的任务是在按下其他选项卡中的 OK 按钮时自动切换到另一个选项卡。单击另一个选项卡时,它使用 IWebBrowser2 上的 C++ 包装器导航到特定网页。
当通过单击选项卡手动完成此操作时,一切都很好,并且视图中的网页成功加载。
在我第一次尝试这样做时,选项卡成功切换以响应对
但是,通过在错误的位置发送此 Windows 消息,应用程序将在控制返回后崩溃,因为事件链导致发送消息的(无模式)对话框 (*) 不再存在。
然后我找到了拨打电话的正确位置,但现在当另一个选项卡被激活时,它不再显示应有的网页。
为了调试这个问题,我添加了代码来检查 READYSTATE 在它工作的情况和它不工作的情况下。当页面加载失败时(尽管调用 Navigate2 返回 S_OK),READYSTATE 只是停留在 READYSTATE_LOADING。
不幸的是,与我部分工作时相比,现在我要进行许多编辑。
我已将 TRACE 语句添加到最明显的事件中,例如 OnSetFocus、CView::OnActivateView,但尽管行为不同,但所有跟踪都以相同的顺序出现
* 托管在视图中
c++ - 启动启用特定 BHO 的 IE
我有一个 IE BHO 插件,我只想在用户从我的程序启动 IE 时启用它(程序使用 IE 启动 IE CreateProcess()
)。
我不希望在用户从我的程序外部启动 IE 时启用此 BHO,因为这意味着 BHO 中的任何问题都可能会破坏用户的正常浏览体验。
最好的方法是什么?
一种方法是注册 BHO,启动 IE,然后快速注销 BHO。不过,这似乎有点混乱,因为启动 IE 的程序崩溃可能会导致 BHO 保持注册状态。