新标签的javascript(CTRL + T),新窗口(CTRL + N)?

时间:2009-02-26 23:09:46

标签: javascript flash

当闪光灯具有键盘焦点时, CTRL + T (新标签页)和 CTRL + N (新窗口)被闪光拦截。

有没有办法将这些事件传递给浏览器以便它们工作(打开新选项卡,打开新浏览器)或是否有这些操作的javascript命令?

2 个答案:

答案 0 :(得分:2)

这是Flash和浏览器的长期问题。 (我的意思是 - 在Mozilla浏览器上查看此eight-year-old bug。)问题是Flash拦截所有输入事件,而不是浏览器。它在自己的环境中进行沙盒处理,并且不会将事件传递回浏览器。

从概念上讲,这不一定是坏事。当Flash想要收听“ctrl + n”事件时会发生什么?浏览器是否应将焦点从Flash中移开,因为它已经使用了该热键?对于Flash开发人员来说,这确实很痛苦,这是肯定的。

有一些关于如何解决这个问题的建议,我已经在特定的浏览器中看到过,但是没有全面的解决方案。例如,bug中引用了this solution,但它显然不会按照你想要的方式工作(因为用户必须通过相当多的箍才能使它工作)。

所以......不,现在。如果可以解决这个问题,那真的很整洁。

答案 1 :(得分:1)

最接近的是让ActionScript触发Javascript以打开一个空白窗口的空白窗口

// We abstract it in a function here in case we want to
// change it later
function openBlankWindow()
{
   window.open( '' );
}

对于大多数人来说,这将启动一个新窗口或一个新选项卡(取决于他们的浏览器首选项),但由于它是由网页启动的,因此可能会遇到弹出窗口阻止程序。

实际上没有办法要求浏览器专门执行您要求的两个任务之一。如果网页拥有这样做的权限/特权,我将成为安全/烦恼的噩梦。