2016-07-05 59 views
0

如何才能使JavaScript代码认为它有一个焦点窗口(但实际上它没有一个焦点窗口)?欺骗JavaScript代码,认为它有一个专注的窗口?

-

编辑:我想用page-mod(在Firefox扩展),我们可以注入CSS来

+0

为什么有些事情需要关注? – dandavis

+0

作为窗口的孩子,关注窗口并不是JS可以做的事情。浏览器可以(也可能)暂停整个窗口,包括JS,这是你无法真正回应的。 – ssube

+0

@ssube我不想通过JS来关注窗口,我想开发一个浏览器扩展,当你使用浏览器时,浏览器中的所有选项卡都认为它们已被选中(例如通过挂钩JS函数) – Iman

回答

1

在一个Firefox插件的网页,如果你想设置:focused CSS伪类的窗口,得到了在domWindow和使用的addPseudoClassLockiniDOMUtils方法:

var inIDOMUtils = Components.classes["@mozilla.org/inspector/dom-utils;1"].getService(Components.interfaces.inIDOMUtils); 
var win = Services.wm.getMostRecentWindow('navigator:browser'); 
inIDOMUtils.addPseudoClassLock(win, ':focused'); 

要删除它,请removePseudoClassLock

如果你是Firefox的插件开发低于此需要注意的是常识,但我会提到它,以防万一你不熟悉的Firefox插件开发:

这是特权代码,所以你必须运行它来自特权范围。您不能在内容脚本中明显运行此代码(因为这相当于在网页范围中运行它)。