在Javascript中模拟按键

在Javascript中模拟按键,javascript,keypress,simulate,Javascript,Keypress,Simulate,可能重复: 您好,有没有办法在javascript中执行以下操作: 我希望用户点击网页上的一个链接,当点击该链接时,它将等同于他们按下CONTROL+D,只是没有实际按下任何键 谢谢您可以仅在jQuery中模拟并跟踪为事件,但您不能像用户按下这些键那样进行模拟 这是一个不能用javascript覆盖的安全问题。您可以仅在jQuery中模拟并作为事件跟踪,但您不能像用户按下这些键那样进行操作 这是一个无法用javascript覆盖的安全问题。您无法在系统级从用户输入中获取其他内容。假设您想让用户

可能重复:

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

我希望用户点击网页上的一个链接,当点击该链接时,它将等同于他们按下CONTROL+D,只是没有实际按下任何键


谢谢

您可以仅在jQuery中模拟并跟踪为事件,但您不能像用户按下这些键那样进行模拟


这是一个不能用
javascript

覆盖的安全问题。您可以仅在jQuery中模拟并作为事件跟踪,但您不能像用户按下这些键那样进行操作


这是一个无法用
javascript

覆盖的安全问题。您无法在系统级从用户输入中获取其他内容。假设您想让用户为链接添加书签(这就是
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'));
});

您不能从系统级的用户输入中生成其他内容。假设您想让用户为链接添加书签(这就是
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'));
});

如果您使用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!
});

如果您使用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!
});

这正是为什么这不起作用的原因。用户做一件事,而你在系统层面上做另一件事,这是行不通的。谢谢。。。现在我明白了,这正是这不起作用的原因。用户做一件事,而你在系统层面上做另一件事,这是行不通的。谢谢。。。现在我了解到Mihai exista vreo在privat ori undeva anume?的国际贸易中的地位。。。在浪漫主义中,我们可以用简单的语言来表达……我是Profectdar女士,我是nu am acces女士,我是trebuie sa am reputatie Minimum“20”。。。oricumProblema e ca eu te vad acolo.prietene,nu ma lasa:)“你必须在堆栈溢出上有20个声誉才能在这里交谈”。。。在这一点上,奥里库姆·马尔女士可以选择在私人或私人领域进行投资。。。在浪漫主义中,我们可以用简单的语言来表达……我是Profectdar女士,我是nu am acces女士,我是trebuie sa am reputatie Minimum“20”。。。oricumProblema e ca eu te vad acolo.prietene,nu ma lasa:)“你必须在堆栈溢出上有20个声誉才能在这里交谈”。。。las nu`ti mai bate capul女士oricum mare domnthat仅模拟事件而非用户操作仅模拟事件而非用户操作不适用于书签。。。但我会试试你的例子。。。谢谢你不是为了书签。。。但我会试试你的例子。。。非常感谢。