firefox屏蔽ctrl+s问题

KAKUKYOWU 2014-10-23 02:04:27
document.onkeydown = function(e) {

e = e || window.event;
if ((e.which || e.keyCode) == 83 && e.ctrlKey) {
// ※这里执行将页面数据保存到db的方法
e.keyCode = 0;
if (e.preventDefault) { // firefox
e.preventDefault();
} else { // other
e.returnValue = false;
}
}
}


上面js是要在页面点击ctrl+s时将页面数据提交,保存到db,并且屏蔽浏览器的ctrl+s弹出的保存html页功能

问题:
※ 的地方是提交操作的方法,不加这行火狐可以正常屏蔽浏览器保存html页弹出框,加上这样就屏蔽不了
哪位大神能指点一下原因?怎么能解决?(即可以提交数据,又可以屏蔽浏览器保存网页弹出框)
...全文
309 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
KAKUKYOWU 2014-10-23
  • 打赏
  • 举报
回复
引用 3 楼 slwsss 的回复:
[quote=引用 2 楼 KAKUKYOWU 的回复:] [quote=引用 1 楼 slwsss 的回复:]
document.onkeydown = function(e) {
 
        e = e || window.event;
        if ((e.which || e.keyCode) == 83 && e.ctrlKey) {
            setTimeout(function(){
// ※这里执行将页面数据保存到db的方法
},1)
            e.keyCode = 0;
            if (e.preventDefault) {  // firefox
                e.preventDefault();
            } else { // other
                e.returnValue = false;
            }
        }
    }
试下
按照你说的,我真的成功了 为什么要加这个超时时间呢?什么原理能说一下吗[/quote] 我也不懂啊[/quote] 好吧,分全给了,结贴,非常感谢!
slwsss 2014-10-23
  • 打赏
  • 举报
回复
引用 2 楼 KAKUKYOWU 的回复:
[quote=引用 1 楼 slwsss 的回复:]
document.onkeydown = function(e) {
 
        e = e || window.event;
        if ((e.which || e.keyCode) == 83 && e.ctrlKey) {
            setTimeout(function(){
// ※这里执行将页面数据保存到db的方法
},1)
            e.keyCode = 0;
            if (e.preventDefault) {  // firefox
                e.preventDefault();
            } else { // other
                e.returnValue = false;
            }
        }
    }
试下
按照你说的,我真的成功了 为什么要加这个超时时间呢?什么原理能说一下吗[/quote] 我也不懂啊
KAKUKYOWU 2014-10-23
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
document.onkeydown = function(e) {
 
        e = e || window.event;
        if ((e.which || e.keyCode) == 83 && e.ctrlKey) {
            setTimeout(function(){
// ※这里执行将页面数据保存到db的方法
},1)
            e.keyCode = 0;
            if (e.preventDefault) {  // firefox
                e.preventDefault();
            } else { // other
                e.returnValue = false;
            }
        }
    }
试下
按照你说的,我真的成功了 为什么要加这个超时时间呢?什么原理能说一下吗
slwsss 2014-10-23
  • 打赏
  • 举报
回复
document.onkeydown = function(e) {
 
        e = e || window.event;
        if ((e.which || e.keyCode) == 83 && e.ctrlKey) {
            setTimeout(function(){
// ※这里执行将页面数据保存到db的方法
},1)
            e.keyCode = 0;
            if (e.preventDefault) {  // firefox
                e.preventDefault();
            } else { // other
                e.returnValue = false;
            }
        }
    }
试下

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧