首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在WebBrowser中禁用退格键

如何在WebBrowser中禁用退格键
EN

Stack Overflow用户
提问于 2011-06-13 19:42:33
回答 2查看 1.7K关注 0票数 2

当我按Backspace时,Web-browser将转到上一页。如何在不阻止清除文本功能的情况下禁用它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-13 23:33:20

TWebBrowser似乎没有OnKeydown事件,而且它还有许多其他问题。我通常会忘记它,转而使用TEmbeddedWB (嵌入式web浏览器组件包),它有更好的功能。

我写了一些代码来尝试检测我们是否在一个编辑控件中,并且只有条件地阻塞退格键,因为正如帕克塔斯所说,简单地阻塞OnKey事件将中断编辑

网页表单,使用TEmbeddedWB,代码如下所示:

代码语言:javascript
复制
procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  element: IHTMLElement;
  elementTagName: String;
begin
  // form contains field: EmbeddedWB1: TEmbeddedWB which is an improved version of TWebBrowser.
  element := EmbeddedWB1.GetActiveElement;
  if Assigned( element ) then
    begin
      elementTagName := element.tagName;
    end;

 if ( not SameText( elementTagName, 'INPUT' ) ) 
   and ( not SameText( elementTagName, 'TEXTAREA' ) ) then
  if    ((Key= VK_LEFT) and (Shift = [ssAlt]))
     or ((Key= VK_RIGHT) and (Shift = [ssAlt]))
     or (Key= VK_BROWSER_BACK)
     or (Key= VK_BROWSER_FORWARD)
     or(Key = VK_BACK) then
      begin
        Key := 0; { block backspace, but not in INPUT or TEXTAREA. }
        Exit;
      end;


end;
票数 3
EN

Stack Overflow用户

发布于 2011-06-13 19:52:20

这样做的唯一方法是检查每个按键,如果检测到退格键,则忽略它。然而,你也需要监控你的任何输入是否被聚焦,这样用户就仍然可以保留向后删除。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6329952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档