停止 TWebBrowser 脚本错误弹出窗口,但不停止 OnShowScriptError 事件
Stop TWebBrowser script error popups, but do not stop OnShowScriptError event
脚本错误模式 windows 可以通过设置
在 TWebBrowser 中被抑制
Silent := True;
但它也禁止 OnShowScriptError
事件。
我想用 OnShowScriptError
收集脚本错误,但停止错误模式 windows。
Your comment is the solution I want to! You could post it as an answer
here and get your points.
不,您需要不同的行为。在下面的示例中:
1) 将出现来自 Web 浏览器 window 的消息框
2) TMemo
component
将添加错误信息
URL 用于测试:http://1click.sdk.1click.lv/test.asp
Javascript 本页代码:
<script type="text/javascript">
alert("test1");
var t = 100 / x0;
</script>
恢复:用户将看到警报 ("test"),但看不到有关错误的信息。
还有什么重要的?您应该在 Internet Explorer 中启用脚本调试,否则将丢失有关的所有信息。
Delphi样本:
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://1click.sdk.1click.lv/test.asp');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Silent := False;
end;
procedure TForm1.WebBrowser1ShowScriptError(ASender: TObject;
const [Ref] AErrorLine, AErrorCharacter, AErrorMessage, AErrorCode,
AErrorUrl: OleVariant; var AOut: OleVariant; var AHandled: Boolean);
begin
Memo1.Lines.Add(AErrorMessage);
AHandled := True;
end;
你真正想要的是:
http://web.archive.org/web/20150329085438/http://support.microsoft.com/en-us/kb/261003(作为WebBrowser控件主机如何处理脚本错误)
脚本错误模式 windows 可以通过设置
在 TWebBrowser 中被抑制Silent := True;
但它也禁止 OnShowScriptError
事件。
我想用 OnShowScriptError
收集脚本错误,但停止错误模式 windows。
Your comment is the solution I want to! You could post it as an answer here and get your points.
不,您需要不同的行为。在下面的示例中:
1) 将出现来自 Web 浏览器 window 的消息框
2) TMemo
component
URL 用于测试:http://1click.sdk.1click.lv/test.asp
Javascript 本页代码:
<script type="text/javascript"> alert("test1"); var t = 100 / x0; </script>
恢复:用户将看到警报 ("test"),但看不到有关错误的信息。
还有什么重要的?您应该在 Internet Explorer 中启用脚本调试,否则将丢失有关的所有信息。
Delphi样本:
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://1click.sdk.1click.lv/test.asp');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Silent := False;
end;
procedure TForm1.WebBrowser1ShowScriptError(ASender: TObject;
const [Ref] AErrorLine, AErrorCharacter, AErrorMessage, AErrorCode,
AErrorUrl: OleVariant; var AOut: OleVariant; var AHandled: Boolean);
begin
Memo1.Lines.Add(AErrorMessage);
AHandled := True;
end;
你真正想要的是: http://web.archive.org/web/20150329085438/http://support.microsoft.com/en-us/kb/261003(作为WebBrowser控件主机如何处理脚本错误)