【问题标题】:Simulate jQuery (or pure JavaScript) Keyboard Event On Clicking a Link单击链接时模拟 jQuery(或纯 JavaScript)键盘事件
【发布时间】:2013-05-27 04:48:40
【问题描述】:

嗯,我的查询是我想在单击链接时使用 jQuery 或纯 Javascript 生成(模拟)键盘事件。例如。我的页面中有一个超链接,单击该链接时,我想触发键盘 CTRL+F 事件。

链接

<a href="#" class="ctrlf">Generate CTRL+F</a>

功能

$(document).ready(function(){
 $("a.ctrlf").click(function(e){
   //Some actions :O
   });
  });

a.ctrlf的click函数里面应该写什么?

是不是很奇怪?如果您有解决方案,请分享您的想法。提前致谢。干杯..:)

【问题讨论】:

  • 您希望 javascript 代码触发浏览器 API?我很确定这是不可能的,而且我非常确定这将是非常危险的。您希望任何页面都能够与您的浏览器/其他程序一起使用吗?
  • @KamilT 这就像使用 javascript 触发键盘事件。说,我想要仅使用我的代码的“查找”功能 (CTRL+F)。有可能吗?
  • 嗯,我不认为这是可能的,这将是一个巨大的威胁。想象一下,如果您进入一个有害页面会触发一千次键盘事件,例如“将此页面添加书签”、“保存页面”或“打开新标签”,会发生什么。如果你从来没有碰到过这样的页面,那么这种行为很可能是不可能的;)
  • 那么看来我们不能从网页内部调用浏览器控件了..:(
  • 请检查我的回答。

标签: jquery keyboard simulation keyboard-events


【解决方案1】:

如果是关于书签,正如您在评论中所说,这是一个棘手的问题。一些浏览器,如 IE、Mozilla 和 Opera,能够“从代码”添加书签。你不能在 Chrome 中这样做,我不知道在 Safari 中是什么样的。代码:

$(function() {
    $("#bookmarkme").click(function() {
    if (window.sidebar) { 
    // Firefox
        window.sidebar.addPanel(location.href,document.title,"");
    } 
    else if(window.external) {
    // Internet Explorer
    window.external.AddFavorite(location.href,document.title); 
    }
    else if(window.opera && window.print) { 
    // Opera
        this.title=document.title;
    }
});

不过,大多数用户还是更愿意自己手动将页面添加到书签中;)

【讨论】:

  • 是的..谢谢你的回答。我已经有了类似的解决方案,但不适用于 chrome & safari ..:( 这就是我发布这个问题的原因!
【解决方案2】:

试试这个:

$(document).ready(function(){
   $("a.ctrlf").click(function(e){
       e.which = 6; // # Some key code value
       $("input").trigger(e);
   });
});

或者这不是你的意思?

【讨论】:

  • No..这就像使用 javascript 触发键盘事件一样。说,我想要仅使用我的代码的“查找”功能 (CTRL+F)。似乎我们无法从网页内部调用浏览器控件..!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多