Javascript 在Firefox的键盘快捷键上弹出新窗口或选项卡
我正在开发一个web应用程序,我想允许用户按键盘快捷键在新选项卡或窗口中打开某些内容。显然,弹出窗口拦截器会在这里产生问题。我知道他们试图通过确定弹出窗口是否由某种用户交互(单击、按键等)启动来实现智能化。Chrome似乎能很好地处理这个问题,当按下键盘快捷键时打开新的标签,但是Firefox阻止了它 我已经尝试了很多方法,包括几乎所有有疑问的解决方案,但似乎都不适用于FF。如果弹出新窗口的函数是从click事件处理程序调用的,而不是从键盘事件处理程序调用的,则在FF中可以正常工作。问题是,有人知道如何通过FF中的键盘事件来实现这一点吗 以下是我最新的尝试(与Chrome兼容,但不与FF兼容):Javascript 在Firefox的键盘快捷键上弹出新窗口或选项卡,javascript,firefox,Javascript,Firefox,我正在开发一个web应用程序,我想允许用户按键盘快捷键在新选项卡或窗口中打开某些内容。显然,弹出窗口拦截器会在这里产生问题。我知道他们试图通过确定弹出窗口是否由某种用户交互(单击、按键等)启动来实现智能化。Chrome似乎能很好地处理这个问题,当按下键盘快捷键时打开新的标签,但是Firefox阻止了它 我已经尝试了很多方法,包括几乎所有有疑问的解决方案,但似乎都不适用于FF。如果弹出新窗口的函数是从click事件处理程序调用的,而不是从键盘事件处理程序调用的,则在FF中可以正常工作。问题是,有人
var$newTabEl=$('');
$(document.body).append($newTabEl);
$newTabEl.单击(函数(){
$(this).target=“\u blank”;
window.open('/request/preview/requestId/'+data.get('id'));
返回false;
});
$newTabEl.click();
$newTabEl.remove();
你能试试.on(“click”,function…And.trigger(“click”);这与触发点击事件的$newTabEl.click();
?有何不同?它使用了不同的机制吗?只是尝试了一下,没有区别-Firefox仍然说它阻止了弹出。顺便说一句,$(这个).attr(“target”,“u blank”)但可能没有区别将目标设置为属性似乎效果很好,尽管这只是我链接到的SO问题中演示的操作。但是,我可以将其作为第二个参数传递给window.open()
-但是是的,没有区别。它会尝试但FF会阻止弹出窗口。
var $newTabEl = $('<div>');
$(document.body).append($newTabEl);
$newTabEl.click(function() {
$(this).target = "_blank";
window.open('/request/preview/requestId/' + data.get('id'));
return false;
});
$newTabEl.click();
$newTabEl.remove();