防止默认事件操作不起作用...?

2023-12-31

I'm trying to add keyboard shortcuts on my website to make fast navigation possible using the keyboard. I'm running into a slight problem, however, with my attempted Alt+X shortcut. The event runs just fine and returns false as it should, but the browser's File menu comes up regardless. I've also tried the preventDefault method, but no change.

该脚本的精简版本是:

document.documentElement.onkeydown = function(e) {
    e = e || window.event;
    switch( e.keyCode || e.which) {
        // some cases here - most notably:
        case 116: // F5 key
            if( activeFrame) {
                activeFrame.contentWindow.location.reload();
                // reloads an iframe if one is active
                return false;
            }
            break;
        // more cases...
        case 88: // X key
            if( e.altKey) {
                // do something
                return false;
            }
    }
}

As noted above, overriding the default action of the F5 key works just fine - the browser reloads the page only if no iframe is active. I don't quite see how to prevent the menu from appearing when Alt+X is pressed.


use stopPropagation(e);代替preventDefault method

function stopPropagation(e)
{
    e = e || event;/* get IE event ( not passed ) */
    e.stopPropagation? e.stopPropagation() : e.cancelBubble = true;
}

参考链接 http://www.webmasterworld.com/forum91/4610.htm

另一个SO问题提到了这一点防止默认 https://stackoverflow.com/questions/1000597/event-preventdefault-function-not-working-in-ie-any-helpIE 中有问题。

UPDATE

尝试使用下面的代码MSDN 参考 http://msdn.microsoft.com/en-us/library/ms536938%28v=vs.85%29.aspx

event.returnValue=false;

还有一些点来自检测击键 http://www.quirksmode.org/js/keys.html

一些一般注意事项:

  • 一般来说,Mac 的可靠性不如 Windows,并且某些按键无法检测到。
  • 资源管理器不会触发删除、结束、输入、转义、功能键、主页、插入、向上/向下翻页和选项卡的按键事件。
  • Onkeypress,Safari 为删除、结束、功能键、home 和 pageUp.Down 提供了 63200 范围内的奇怪 keyCode 值。 onkeydown 和 -up 值正常。
  • 除 Opera 外,Mac 上无法检测到 Alt、Cmd、Ctrl 和 Shift。但是,您始终可以使用 altKey、ctrlKey 和 shiftKey 属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

防止默认事件操作不起作用...? 的相关文章

随机推荐

  • python 只记录到文件

    我有一个运行 python 脚本的 cronjob 我添加了一个logging但由于这是一项日常工作 我每天都会收到有关其功能的电子邮件 这真的很烦人 但我似乎找不到一个设置 这将使其仅记录到日志文件中 usr bin python imp
  • 使用“__dict__”或“vars()”?

    内置功能vars 对我来说看起来更像Pythonic 但我明白了 dict 使用更频繁 Python 文档表明它们是等效的 一位博主声称 dict 比vars http pythondoeswhat blogspot com 2012 01
  • 从 Bash 函数返回布尔值

    我想编写一个 bash 函数来检查文件是否具有某些属性并返回 true 或 false 然后我可以在我的脚本中的 if 中使用它 但我应该返回什么 function myfun return 0 else return 1 fi 然后我像这
  • static_casting 的结果是 constexpr void* 常量表达式吗?

    clang 拒绝 gcc 允许的这段代码 int main static constexpr const void vp nullptr static constexpr const char cp static cast
  • 未捕获异步 javascript 中引发的异常

    基本上 为什么这个异常没有被捕获 var http require http options host www crash boom bang please com port 80 method GET try var req http r
  • 如何使用 Google Cloud Composer 设置 dbt?

    我正在尝试在 Google Cloud Composer 上安装 dbt 但遇到了依赖性问题 我已按照本文的说明进行操作 https blog doit intl com setup dbt with cloud composer ab70
  • Twitter 登录崩溃并出现 TWTRInvalidInitializationException

    当我尝试使用 Twitter 登录时 我的应用程序崩溃并显示错误消息 在应用程序设置中未设置有效的 Twitter Kit URL 方案的情况下尝试登录或点赞推文 请参见https dev twitter com twitterkit io
  • 鼠标悬停时更改 html 中的字体颜色和背景

    我使用一小段内联 HTML 代码来更改鼠标悬停时表格中单元格颜色的背景 我仅在特定的表格单元格上使用此功能 因此并非所有单元格都需要这样做 td 这很好用 但我还想更改字体颜色 因此默认情况下它是带有白色文本的黑色单元格 但是当鼠标悬停时
  • 自升级到 Rails 3.1 以来,form_for 参数数量错误(3 为 2)

    在我将应用程序移植到 Rails 3 1 之前 这个 form for 曾经可以工作 div class form box style padding left 1em div
  • 创建一个名为“file.ext:file.ext”的文件到底有什么作用? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我最近开始研究隐写术 并且在网上找到了一个教程 为了将新的文本文件隐藏在另一个文件中 教程提供者使用了类似于以下命令的内容 notepad
  • 静态成员函数的局部变量

    今天我们遇到了一个关于多线程环境中静态成员函数的问题 我们问自己但找不到满意答案的问题是 静态成员函数的局部变量也是静态的吗 header class A static int test implementation int A test
  • pandas dataframe 删除每个数字的第一行

    所以 基本上我有一个数据框 其第一列如下所示 1 2 2 3 3 3 3 4 4 5 如您所见 第一列由随机重复的数字组成 首先 我必须删除所有 然后删除每个数字的第一行 由于 1 只有一行 它应该消失 并且只有 2 的第二行保留 依此类推
  • 什么是 ASP.NET 提供程序?

    ASP NET Provider 中的 Provider 是什么意思 例如当我们谈论AuthorizationRuleProvider connectionStrings providerName 这是一种设计模式 提供商模型 http e
  • 在 foreach 中的 DataRow 上转换 null 文字或可能的 null 警告

    更新了我的 NET Core 3 1 控制台应用程序以使用 Nullables 功能并具有以下内容foreach loop DataTable profiles DB ListProfiles CS8600 warning here v f
  • AttributeError:模块“pandas”没有属性“to_csv”

    我从 csv 文件中取出了一些行 如下所示 pd DataFrame CV data take 5 columns CV data columns 并对其执行一些功能 现在我想再次将其保存在 csv 中 但出现错误module pandas
  • 如何更改 shell/bash 中的列名称?

    这个问题对于大多数人来说可能太简单了 但我真的不想手动做 所以 假设我在终端中有一个文件 如下所示 dz2t edison s GWAS head PHENO GWASID CHILDID VSTNUM GENDER GA 1001 100
  • 使用 ng-repeat 生成的项目中的增量计数器

    我用 ng repeat 生成了一个列表 其中每个项目都有一个计数变量 在列表项中 我有一个链接 我想在单击它时增加计数 我不知道如何用 Angular JS 方式解决这个问题 Plunker http plnkr co edit HfeL
  • Android googlemaps v2完成加载事件或回调

    我想在谷歌地图加载后做一些事情 maptiles已被填充 无论如何可以实现这一点吗 正如所指出的qubz https stackoverflow com users 496625 qubz ViewTreeObserver可用于实现地图加载
  • Angular2 检测模板视图中的元素是否具有类

    我们使用 bootstrap 有时它会自动向 DOM 元素添加类 附加到这些元素并检测何时将特定 css 类添加到组件模板子元素的最佳方法是什么 假设我有这个组件 import Component ViewChild ElementRef
  • 防止默认事件操作不起作用...?

    I m trying to add keyboard shortcuts on my website to make fast navigation possible using the keyboard I m running into