Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Firefox的键盘快捷键上弹出新窗口或选项卡_Javascript_Firefox - Fatal编程技术网

Javascript 在Firefox的键盘快捷键上弹出新窗口或选项卡

Javascript 在Firefox的键盘快捷键上弹出新窗口或选项卡,javascript,firefox,Javascript,Firefox,我正在开发一个web应用程序,我想允许用户按键盘快捷键在新选项卡或窗口中打开某些内容。显然,弹出窗口拦截器会在这里产生问题。我知道他们试图通过确定弹出窗口是否由某种用户交互(单击、按键等)启动来实现智能化。Chrome似乎能很好地处理这个问题,当按下键盘快捷键时打开新的标签,但是Firefox阻止了它 我已经尝试了很多方法,包括几乎所有有疑问的解决方案,但似乎都不适用于FF。如果弹出新窗口的函数是从click事件处理程序调用的,而不是从键盘事件处理程序调用的,则在FF中可以正常工作。问题是,有人

我正在开发一个web应用程序,我想允许用户按键盘快捷键在新选项卡或窗口中打开某些内容。显然,弹出窗口拦截器会在这里产生问题。我知道他们试图通过确定弹出窗口是否由某种用户交互(单击、按键等)启动来实现智能化。Chrome似乎能很好地处理这个问题,当按下键盘快捷键时打开新的标签,但是Firefox阻止了它

我已经尝试了很多方法,包括几乎所有有疑问的解决方案,但似乎都不适用于FF。如果弹出新窗口的函数是从click事件处理程序调用的,而不是从键盘事件处理程序调用的,则在FF中可以正常工作。问题是,有人知道如何通过FF中的键盘事件来实现这一点吗

以下是我最新的尝试(与Chrome兼容,但不与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();