我正在尝试将按下该键的文档和控件发送到按键功能。
这是我的代码:
//Namespace
MyExt.BrowserOverlay = {
init: function() {
var appcontent = document.getElementById("appcontent"); // browser
if(appcontent)
appcontent.addEventListener("DOMContentLoaded", MyExt.BrowserOverlay.onPageLoad, true);
},
onPageLoad: function(aEvent) {
var doc = aEvent.originalTarget;
if (doc.location.href == "http://something.com"){
var txtBox = doc.getElementById('txtBox');
txtBox.addEventListener('keypress', keypressed, false); //Error Line
}
},
...
类似的东西:
txtBox.addEventListener('keypress', keypressed(?,doc), false);
function keypressed(a,doc){
alert(a); //a relates to keypress
alert(doc.innerHTML);
}
答案 0 :(得分:0)
传递变量的最简单方法是将其附加到将触发事件的Element,但您可以使用全局变量document
来访问文档。
对于事件侦听器,浏览器以不同方式处理事件:
txtBox.someVar = "foobar"; // Any variable you want to pass if(window.addEventListener){ // Firefox, Chrome... txtBox.addEventListener('keypress', keypressed, false); } else { // IE txtBox.attachEvent('onkeypress', keypressed); }
function keypressed(event){ // find event object var e = event || window.event; // find target object var target = e.currentTarget; if (e.target) target = e.target; else if (e.srcElement) target = e.srcElement; if (target.nodeType == 3) target = targ.parentNode; // find key code var code = e.charCode || e.keyCode; alert(String.fromCharCode(code)); alert(target.someVar); alert(document.body.innerHTML); }
答案 1 :(得分:0)
您可以使用gBrowser.contentDocument
获取当前所选标签的文档。有关详细信息,请参阅选项卡式浏览器控件上的article。