2010-01-03 72 views
1

所以,我需要按下Ctrl键++德尔程序的方式。 我想我的分机按下Ctrl键++德尔然后按Enter键 (清除所有历史记录,cookies,缓存等)。 我下一步:按下Ctrl + Shift + Del键outof Firefox扩展

var e=document.createEvent('KeyboardEvent'); 
e.initKeyEvent('keypress', true, true, window, true, false, true, false, 46, 0); 
document.dispatchEvent(e); 

据我所理解的,这个代码有效仿按下Ctrl键++德尔 但没有任何反应...... document.dispatchEvent(E)发生,但按Ctrl + Shift + Del没有出现。为什么?

p.s.我知道Components.classes["@mozilla.org/cookiemanager;1"].getService(Components.interfaces.nsICookieManager).removeAll(); 但它不适合我的情况。 我做definetly需要 “按” 这些按Ctrl ++德尔 so..any想法?看错误?

+0

为什么你需要这样做? – Skilldrick 2010-01-03 12:33:08

+0

我需要它,因为这个扩展是一个志愿者计算项目。 ,我们将一些系统数据存储在用户的Cookie中。 – lazybob 2010-01-03 21:01:21

回答

2

模拟按键事件来启动浏览器的本机功能听起来像一个糟糕的,可能是不必要的想法。

为什么不检查其他扩展名,如this one来清除缓存/历史记录,并查看其source code以了解它是如何完成的。

+0

看到...问题是,因为gecko 1.9根据developer.mozilla.org/en/nsICookieManager我不能使用这个: Components.classes [“@ mozilla.org/cookiemanager;1"].getService (Components.interfaces.nsICookieManager).removeAll(); 我不仅需要清除缓存,还需要清除cookie。 ,我不知道如何以另一种方式解决这个问题... – lazybob 2010-01-03 13:01:37

+0

我明白了,这确实是一个泡菜。尽管如此,按键很可能无法让你到达任何地方。必须有某种文件如何清除当前一代Firefox中的Cookie。也许值得为此设置另一个问题。 – 2010-01-03 13:21:41

0

如何开口,按Ctrl ++德尔打开弹出?

编辑:这是chrome://browser/content/sanitize.xul。你也可以看看chrome://browser/content/sanitize.js

+0

yeh.that可能会工作! thanx,男子。 – lazybob 2010-01-03 21:02:23

相关问题