在Javascript中模拟按键

时间:2012-08-20 09:55:55

标签: javascript keypress simulate

  

可能重复:
  Can I do SendKeys in Javascript?

你好有没有办法在javascript中执行以下操作:

我希望用户点击网页上的链接,当点击该链接时,它将等同于按CONTROL + D,除非没有实际按任何键。

谢谢

3 个答案:

答案 0 :(得分:1)

如果你使用jQuery,你可能会做这样的事情。

$("#linkId").click(function(event) {
    event.preventDefault(); // Stop the link click from doing anything.
    var ev = jQuery.Event("keypress"); // Build an event to simulate keypress.
    ev.which = 68; // Keycode for 'd' is 68
    ev.ctrlKey = true; // Control key is down.
    $(this).trigger(ev); // Fire!
});

答案 1 :(得分:0)

您只能在jQuery中模拟并跟踪事件,但您无法做到这一点,就像用户进行了那些按键操作一样。

这是一个无法用javascript覆盖的安全问题。

答案 2 :(得分:0)

您无法在系统级别的用户输入中创建其他内容。假设您想让用户为一个链接添加书签(这是Control + D所做的),这可以让您到达目的地:

function addBookmark(title,url){ 
  if(window.sidebar){ 
    window.sidebar.addPanel(title, url, ""); 
  } else if(document.all){ 
    window.external.AddFavorite(url, title); 
  } else if((window.opera && window.print) || window.chrome){ 
    // Chrome & Opera do not have an add Favorite function on window
    alert('Press Control+D to bookmark (Command+D for macs) after you click Ok');
    // or something similar
  }
}

然后绑定click处理程序以调用函数:

$('#yourLink').on('click', function(e) {
  addBookmark($(this).attr('title'), $(this).attr('href'));
});