Javascript firefox加载项错误的关键事件:访问属性“type”的权限被拒绝

Javascript firefox加载项错误的关键事件:访问属性“type”的权限被拒绝,javascript,jquery,firefox-addon,firebug,Javascript,Jquery,Firefox Addon,Firebug,我有一组我想运行的关键事件,但在扩展中执行这些事件时遇到了一些困难 目标是在触发自动完成列表的输入元素上触发这些事件,并选择列表中的第一个: var = document.getElementById(elementID); // END KEY var e = document.createEvent('KeyboardEvent'); e.initKeyEvent('keydown', true, true, window, false, false, false, false, 35,

我有一组我想运行的关键事件,但在扩展中执行这些事件时遇到了一些困难

目标是在触发自动完成列表的输入元素上触发这些事件,并选择列表中的第一个:

var  = document.getElementById(elementID);

// END KEY
var e = document.createEvent('KeyboardEvent');
e.initKeyEvent('keydown', true, true, window, false, false, false, false, 35, 0);
element.dispatchEvent(e);

var e = document.createEvent('KeyboardEvent');
e.initKeyEvent('keyup', true, true, window, false, false, false, false, 35, 0);
element.dispatchEvent(e);

// ARROW DOWN KEY
var e = document.createEvent('KeyboardEvent');
e.initKeyEvent('keydown', true, true, window, false, false, false, false, 40, 0);
element.dispatchEvent(e);

var e = document.createEvent('KeyboardEvent');
e.initKeyEvent('keyup', true, true, window, false, false, false, false, 40, 0);
element.dispatchEvent(e);

//ENTER KEY
var e = document.createEvent('KeyboardEvent');
e.initKeyEvent('keydown', true, true, window, false, false, false, false, 13, 0);
element.dispatchEvent(e);

var e = document.createEvent('KeyboardEvent');
e.initKeyEvent('keyup', true, true, window, false, false, false, false, 13, 0);
element.dispatchEvent(e);
如果我在firebug上运行这个,它会完全满足我的要求

但是当我从扩展运行它时,控制台上会出现一个错误

访问属性“type”的权限被拒绝 wich指向该网站的jQuery文件

我不明白是什么触发了这个错误,因为它在Firebug中工作没有任何麻烦

发生这种情况的一个例子是www.kayak.com,Paris在From字段。elementID是源代码

有没有关于为什么会发生这种情况的信息

编辑:通过对此类错误的进一步研究,似乎这通常与同源策略问题有关,但我无法从扩展中找出这是如何发生的。我可以找到元素,但在运行键事件时,它会不断给出错误

编辑2:

我已经在多个网站上测试了这一点,试图弄清楚发生了什么,它总是在控制台上给出一些关于jQuery库文件的错误。在其中一个网站上,它不是缩小版,并且能够看到错误是以下代码块:

eventHandle = elemData.handle;
if (!eventHandle) {
    elemData.handle = eventHandle = function (e) {
        return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? jQuery.event.dispatch.apply(eventHandle.elem, arguments) : undefined;
    };
    eventHandle.elem = elem;
}
关于这是如何妨碍我尝试从分机发送的事件的,有什么想法吗?

var e = document.createEvent('KeyboardEvent');

解决了


多亏了Dagger@extdev irc.mozilla.org

你是如何触发这段代码的?我在上下文菜单项的扩展中测试了它,它似乎对我来说工作正常,没有任何错误。我在pageload上触发它。我用一个单词填充输入,然后调用那块代码来触发自动完成,但是什么都没发生,控制台上出现了一堆错误-。我试着在弹出面板上做同样的事情,但我得到了完全相同的错误。
var doc = gBrowser.selectedBrowser.contentDocument;
var e = doc.createEvent('KeyboardEvent');