HOWTO:模拟单击确定在通过一个JavaScript web浏览器发起警报/消息框? (德尔福) [英] HOWTO: Simulate click OK in WebBrowser alert/messagebox that initiated by a JavaScript? (Delphi)
本文介绍了HOWTO:模拟单击确定在通过一个JavaScript web浏览器发起警报/消息框? (德尔福)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个web浏览器内的应用程序:
I have an app with a WebBrowser inside:
当我张贴我的网页我有JavaScript弹出警报/消息框来在哪里我需要点击确定。下面是我的javascript创建警报:
when I POST my webpage i have javascript popup alert/messagebox comes on where I need to click OK. Here is my javascript that creates the alert:
function delete(){
if (confirm('Are you sure you wish to delete this ?')){
document.forms.item.action = "edit.asp?action=delete";
document.forms.item.submit();
}
}
我在寻找了一段时间,但没有能没有找到任何工作的解决方案...
I was searching for a while but could not yet find any working solution...
在此先感谢您的帮助!
推荐答案
IDocHostShowUI :: ShowMessage 并显示自己的对话框,或者只是返回S_OK。
Implement IDocHostShowUI::ShowMessage and show your own dialog, or just return S_OK.
注:链接已断开。在这里,code的解决方案:
Note:The link is broken. Here the code for the solution:
IDocHostShowUI = interface(IUnknown)
['{c4d244b0-d43e-11cf-893b-00aa00bdce1a}']
function ShowMessage(hwnd: THandle; lpstrText: POleStr; lpstrCaption: POleStr;
dwType: longint; lpstrHelpFile: POleStr; dwHelpContext: longint;
var plResult: LRESULT): HRESULT; stdcall;
end;
TShowMessageEvent = function(Sender: TObject; HWND: THandle;
lpstrText: POleStr; lpstrCaption: POleStr; dwType: Longint; lpstrHelpFile: POleStr;
dwHelpContext: Longint; var plResult: LRESULT): HRESULT of object;
TWebBrowser = class(SHDocVw.TWebBrowser, IDocHostShowUI)
private
fOnShowMessage: TShowMessageEvent;
protected
function ShowMessage(HWND: THandle; lpstrText: POleStr; lpstrCaption: POleStr;
dwType: Longint; lpstrHelpFile: POleStr; dwHelpContext: Longint;
var plResult: LRESULT): HRESULT; stdcall;
published
property OnShowMessage: TShowMessageEvent read fOnShowMessage write
fOnShowMessage;
end;
function TWebBrowser.ShowMessage(HWND: THandle; lpstrText, lpstrCaption: POleStr;
dwType: Integer; lpstrHelpFile: POleStr; dwHelpContext: Integer;
var plResult: LRESULT): HRESULT;
begin
if Assigned(fOnShowMessage) then
Result := fOnShowMessage(Self, HWND, lpstrText, lpStrCaption, dwType,
lpStrHelpFile, dwHelpContext, plResult)
else
Result:= S_OK;
end;
这篇关于HOWTO:模拟单击确定在通过一个JavaScript web浏览器发起警报/消息框? (德尔福)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文