【问题标题】:How to press Ctrl + L keys using JavaScript如何使用 JavaScript 按 Ctrl + L 键
【发布时间】:2021-08-19 06:25:34
【问题描述】:

我想在我的网站加载时始终使用 JavaScript 按下 Ctrl + L 键,我的代码是:

    $(document).ready(function() {
        var e = $.Event("keydown");
        e.keyCode = 76;
        e.ctrlKey = true;
        $('body').trigger(e);
    });

但它不起作用,请帮助 - 结果:我希望在我的网站加载时始终显示高亮地址栏。

【问题讨论】:

  • 如果允许网站在浏览器中操纵随机菜单,一些网站会忙于窃取个人信息并安装书签和恶意软件。
  • 这听起来像an XY problem。你到底想用 URL 栏做什么?

标签: javascript


【解决方案1】:

这是不可能的,这个功能很久以前就被任何像样的浏览器阻止了。

正如在 cmets 中所注意到的,这对于任何用户来说都是一个灾难性的安全漏洞。

(访问 url 工具栏可以很容易地窃取历史记录,甚至可以打开客户端计算机上的一些文件,并访问可能发生更糟情况的可疑站点)

【讨论】:

    【解决方案2】:

    要操纵用户操作,您可以使用 chrome devtools 协议 有一些浏览器自动化和测试框架提供了高级 api 来轻松实现您的需求。

    【讨论】:

      【解决方案3】:

      Working filddle

      你可以在 jquery 中使用类似的东西

       $("body").keydown(function(e) {
        var code = (e.keyCode ? e.keyCode : e.which);
      
        if (code == 67) {
          if (e.ctrlKey) {
            alert("Ctrl+C was pressed!!");
          }
        }
      });
      
      var e = jQuery.Event("keydown");
      
      e.which = 67; // 'C' key code value
      e.ctrlKey = true;
      
      $("body").trigger(e);
      

      【讨论】:

      • 小提琴是如何工作的?我在 Firefox 上根本没有看到突出显示的栏。
      • 它按 ctrl + c 检查 JavaScript 代码,你会得到功能
      • 虽然这可以模拟给定的按键,但它不会触发它在浏览器中链接到的操作,这是预期的结果和最终目标。在某种程度上,这个问题类似于试图通过阻止 Ctrl+V 来阻止从剪贴板粘贴;它只是一个功能的接口,也是几个功能之一。
      猜你喜欢
      • 1970-01-01
      • 2020-03-30
      • 2012-09-13
      • 1970-01-01
      • 2019-11-15
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      相关资源
      最近更新 更多