事件没有被解雇
问题描述:
我想使用WebWorkerStarted
和WebWorkerFinished
从TWebbrowser
但是事件根本不会被解雇。事件没有被解雇
我怎样才能得到这些事件的工作?我想看看这工作线程都可以从TWebbrowser
启动。
unit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.OleCtrls, SHDocVw;
type
TForm2 = class(TForm)
WebBrowser1: TWebBrowser;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure WebBrowser1WebWorkerFinsihed(ASender: TObject; dwUniqueID: Cardinal);
procedure WebBrowser1WebWorkerStarted(ASender: TObject; dwUniqueID: Cardinal; const bstrWorkerLabel: WideString);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('www.*.com');
end;
procedure TForm2.WebBrowser1WebWorkerFinsihed(ASender: TObject; dwUniqueID: Cardinal);
begin
// does not fire
end;
procedure TForm2.WebBrowser1WebWorkerStarted(ASender: TObject; dwUniqueID: Cardinal; const bstrWorkerLabel: WideString);
begin
// does not fire
end;
end.
答
如记录here:
默认情况下,TWebBrowser使用即使运行时环境中安装了最新的IE(例如,IE11)IE7标准模式。
Web工作人员是在IE10中引入的,因此您必须让IE以更当前的模式运行。至少有两个注册表项需要进行设置(更多,如果同时支持32/64位):
HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
{\Wow6432Node}
\SOFTWARE
\Microsoft
\Internet Explorer
\Main
\FeatureControl
\FEATURE_BEHAVIORS
{NEW DWORD -> 'YourApplication.exe'
{ VALUE -> 1
而且(例如,IE11模式)
HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
{\Wow6432Node}
\SOFTWARE
\Microsoft
\Internet Explorer
\Main
\FeatureControl
\FEATURE_BROWSER_EMULATION
{NEW DWORD -> 'YourApplication.exe'
{ VALUE -> 0x2AF8
这将导致Internet Explorer实例包梁通过TWebBrowser在IE11模式下运行,支持WebWorkers,等等。你应该设置这个值之前可能做一些针对IE的安装版本健全性检查。有关有效条目的更多信息can be found on MSDN。
这仍然导航到*上时,不会引发任何WebWorker
事件对我(你确定它使用它们?)。作为验证测试,这WebWorkers演示页不养OnWebWorkerStarted
事件:
WebBrowser1.Navigate('https://whatwg.org/demos/workers/primes/page.html');
你将它们分配给组件? – 2015-02-05 14:39:11
您确定您导航的页面实际上使用网络工作者吗?我觉得这是页面脚本明确使用(或不)的印象。 – 2015-02-05 15:02:00
@ 500 InternalServerError,我可能是错的,但我觉得OP不理解这个事件意味着什么,什么是HTML WebWorker ... +1你。 – kobik 2015-02-05 15:44:35