代码之家  ›  专栏  ›  技术社区  ›  Adam

如何防止ie模式对话框中按alt键而不切换到隐藏菜单

  •  2
  • Adam  · 技术社区  · 16 年前

    在ie中使用javascript中的window.showmodaldialog(其中选项不显示任何地址栏或工具栏)创建对话框时,按alt键的行为是做了一些不需要的事情。

    当焦点在模式对话框上时,按alt键-alt键按下事件由我的javascript代码处理很好,但无论我是否允许事件继续冒泡-看起来ie总是将焦点跳到模式对话框中的“隐藏”菜单。您可以通过按Alt键,然后按空格键,从模式对话框进入此菜单。

    事件顺序:

    1. 在模式对话框中,用户点击alt键
    2. 我的事件处理代码捕获这个alt键并执行一些操作
    3. 用户点击另一个键
    4. 我的事件处理代码(对于任何keyup)都没有执行,看起来像b/c,焦点在alt+space菜单上,最后一个按键将焦点跳回到模式对话框
    5. 用户点击另一个键
    6. 我的事件处理代码正常执行

    以下是我提供的功能 showModalDialog 以下内容:

    var strFeatures = "unadorned:yes,resizable:no;scroll:yes;help:no;status:no;";
    

    在按下模式对话框的alt键后,是否仍要防止焦点指向隐藏菜单?使用window.open创建普通窗口时-此行为不会发生,并且按alt键不会转到隐藏菜单(假设menu bar为off,address bar为off等)。

    0 回复  |  直到 16 年前