单击链接时模拟jQuery(或纯JavaScript)键盘事件
我的问题是,我想在单击链接时使用jQuery或纯Javascript生成(模拟)一个键盘事件。例如,我的页面中有一个超链接,单击该链接时,我想触发键盘CTRL+F事件 链接 我应该在a.ctrlf的click函数中写什么 是奇怪还是什么?如果您有解决方案,请分享您的想法。提前谢谢。干杯……)试试这个:单击链接时模拟jQuery(或纯JavaScript)键盘事件,jquery,keyboard,simulation,keyboard-events,Jquery,Keyboard,Simulation,Keyboard Events,我的问题是,我想在单击链接时使用jQuery或纯Javascript生成(模拟)一个键盘事件。例如,我的页面中有一个超链接,单击该链接时,我想触发键盘CTRL+F事件 链接 我应该在a.ctrlf的click函数中写什么 是奇怪还是什么?如果您有解决方案,请分享您的想法。提前谢谢。干杯……)试试这个: $(document).ready(function(){ $("a.ctrlf").click(function(e){ e.which = 6; // # Some key
$(document).ready(function(){
$("a.ctrlf").click(function(e){
e.which = 6; // # Some key code value
$("input").trigger(e);
});
});
或者这不是你的意思吗?如果是关于书签的,正如你在评论中所说,这是一个棘手的问题。有些浏览器,如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;
}
});
尽管如此,大多数用户还是会选择自己手动将页面添加到书签中;) 您希望javascript代码触发浏览器API吗?我非常肯定这是不可能的,而且我非常肯定这将是非常危险的。您是否希望任何页面能够使用您的浏览器/其他程序进行操作?@KamilT这就像使用javascript触发键盘事件一样。比方说,我只需要使用我的代码就可以使用“查找”功能(CTRL+F)。有可能吗?我不认为有可能,这将是一个巨大的威胁。试想一下,如果你看到一个有害的页面,它会触发键盘事件,比如“为这个页面添加书签”、“保存页面”或“打开新标签”一千次,会发生什么。若你们从来并没有像taht那个样碰到过页面,那个么很可能这种行为是不可能的;)然后,我们似乎无法从网页内部调用浏览器控件。(请检查我的答案。否。这就像使用javascript触发键盘事件。比如,我想要“查找”功能(CTRL+F)仅使用我的代码。似乎我们无法从网页内部调用浏览器控件..!是的..谢谢你的回答。我已经有了类似的解决方案,但没有使用chrome&safari..:(这就是我发布此问题的原因!
$(document).ready(function(){
$("a.ctrlf").click(function(e){
e.which = 6; // # Some key code value
$("input").trigger(e);
});
});
$(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;
}
});