Javascript 如何在浏览器窗口中限制Ctrl-N组合?
据我所知,我们可以使用以下Javascript代码禁用新窗口的ctrl+N键:Javascript 如何在浏览器窗口中限制Ctrl-N组合?,javascript,internet-explorer,events,browser,dom-events,Javascript,Internet Explorer,Events,Browser,Dom Events,据我所知,我们可以使用以下Javascript代码禁用新窗口的ctrl+N键: document.onkeydown = function() { alert(event.keyCode) if ((event.keyCode == 78) && (event.ctrlKey)) { alert ("No new window") event.cancelBubble = true; event.retur
document.onkeydown = function() {
alert(event.keyCode)
if ((event.keyCode == 78) && (event.ctrlKey)) {
alert ("No new window")
event.cancelBubble = true;
event.returnValue = false;
event.keyCode = false; return false;
}
}
在我的例子中,有3帧,其中一帧是固定的(我可以在菜单栏中放置此代码),但如果焦点在其他帧中,则不会捕获此事件。如何在浏览器窗口上全局实现此限制?我认为您不允许从网页(也不应该)以这种方式控制浏览器我认为您不允许从网页(也不应该)以这种方式控制浏览器您必须包含每个文档(框架)的脚本。如果所有的框架都来自同一个域,那么您应该能够从单个入口点,使用
window.frames
集合并向下搜索每个框架的文档对象来完成这项操作
你的脚本也只能在IE中使用
这也是一个糟糕的想法。您不应该接管人们的浏览器功能。您必须包含每个文档(框架)的脚本。如果所有的框架都来自同一个域,那么您应该能够从单个入口点,使用
window.frames
集合并向下搜索每个框架的文档对象来完成这项操作
你的脚本也只能在IE中使用
这也是一个糟糕的想法。你不应该接管人们的浏览器功能。虽然这样的担忧通常是合理的,但试图做一些事情,例如防止组合键或a键,实际上对你的网站不好。考虑这一点: 用户希望他们的浏览器以某种方式工作。当您篡改此功能时,用户可能会感到沮丧。他们可能认为你的网站被破坏了,然后离开 当您试图阻止用户执行内置操作时,实际上是在监控他们的行为。这向用户表明,除非在您的监督下,否则您不信任他们使用您的网站。用户会感到受到侮辱,然后离开 如果用户禁用了JavaScript,会发生什么?或者,他们是否有一个自定义规则集来阻止网站更改其浏览器的行为 打开一扇新窗户有什么不好?如果这是一个安全问题,那么应该妥善解决。如果用户有这些想法,他们可能会感到不安全,然后离开
在启动一个站点之前,必须考虑这些(以及许多其他)因素。希望这对你的项目工作有所帮助。虽然这样的担忧通常是合理的,但试图做一些事情,如阻止键组合或a键组合,实际上对你的网站不好。考虑这一点: 用户希望他们的浏览器以某种方式工作。当您篡改此功能时,用户可能会感到沮丧。他们可能认为你的网站被破坏了,然后离开 当您试图阻止用户执行内置操作时,实际上是在监控他们的行为。这向用户表明,除非在您的监督下,否则您不信任他们使用您的网站。用户会感到受到侮辱,然后离开 如果用户禁用了JavaScript,会发生什么?或者,他们是否有一个自定义规则集来阻止网站更改其浏览器的行为 打开一扇新窗户有什么不好?如果这是一个安全问题,那么应该妥善解决。如果用户有这些想法,他们可能会感到不安全,然后离开
在启动一个站点之前,必须考虑这些(以及许多其他)因素。希望这对您在项目中的工作有所帮助。将代码放在common.js(javascript)文件中,并将该.js与所有页面链接起来。
如果您想删除该功能或添加任何集中式功能,它会有所帮助。将代码放在common.js(javascript)文件中,并将该.js与所有页面链接起来。
如果您想删除该功能或添加任何集中式功能,它将有所帮助。谢谢您的评论,但我需要这样做,因为服务器端代码(需要一段时间才能修复和发布)使用了会话变量,这些变量在具有相同会话的两个浏览器窗口中共享。你能分享一小段代码来处理所有的框架吗?谢谢你的评论,但我需要这样做,因为服务器端的代码(需要一段时间来修复和发布)使用了会话变量,这些变量在两个浏览器窗口中通过同一个会话共享。你能分享一小段代码来处理所有的框架吗?谢谢你的评论,但我需要这样做,因为服务器端的代码(需要一段时间来修复和发布)使用了会话变量,这些变量在两个浏览器窗口中通过同一个会话共享。你能分享一小段代码来处理所有的框架吗?谢谢你的评论,但我需要这样做,因为服务器端的代码(需要一段时间来修复和发布)使用了会话变量,这些变量在两个浏览器窗口中通过同一个会话共享。你能分享一小段代码来处理所有的框架吗?