简体   繁体   English

使用 javascript 替换浏览器 ctr + n 默认处理程序?

[英]use javascript to replace browser ctr + n default handler?

I was wondering whether a tricky JavaScript snippet exists, to replace web browsers default Crl+N event handler(they open a new file).我想知道是否存在一个棘手的 JavaScript 片段来替换 web 浏览器默认 Crl+N 事件处理程序(他们打开一个新文件)。 (I know it's a bad boy's job and I also know chances are low.) (我知道这是一个坏孩子的工作,我也知道机会很低。)

Browsers are designed so that websites run in sandboxes.浏览器的设计使网站在沙箱中运行。 Preventing anything that goes sour ( maliciousness intended or not ) to not affect the computer itself.防止任何变质(恶意或非恶意)不影响计算机本身。 So you might be able to change your own browser settings, I doubt you will find an easy way to do this.所以你也许可以改变你自己的浏览器设置,我怀疑你会找到一种简单的方法来做到这一点。

In addition you shouldn't do this even if you find a way.此外,即使您找到了方法,也不应该这样做。 IE will let you erase the clipboard, but that doesn't mean doing so wont piss off every user who visits your website. IE 会让你擦除剪贴板,但这并不意味着这样做不会激怒每个访问你网站的用户。

Why do you want such behavior anyway?你为什么想要这样的行为呢? I cannot see any amicable reason.我看不出任何友好的理由。

Nope, I just tried it.没有,我刚试过。 It doesn't work:它不起作用:

$(window).keydown(function(e){
  if(e.which == 17)
      $(window).bind('keydown.ctrln', function(e){
          if(e.which == 78){
              e.preventDefault();
              alert('CTRL+N');
          }
      });
});

$(window).keyup(function(e){
  if(e.which == 17)
      $(window).unbind('keydown.ctrln');
});

Changing e.which == 78 to e.which == 73 makes it work in Chrome if you press Ctrl+i since Ctrl+i doesn't have any default action in Chrome.如果您按 Ctrl+i 将e.which == 78更改为e.which == 73使其在 Chrome 中工作,因为 Ctrl+i 在 Chrome 中没有任何默认操作。 But you can't overwrite the default browser behavior, which is what I was guessing was going to happen anyways.但是你不能覆盖默认的浏览器行为,这就是我猜想无论如何都会发生的事情。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM