Javascript 在addEventListener中传递参数
我正在开发一个Firefox扩展,并试图向addEventListener传递一个参数。我正在侦听页面标题中的更改,我的代码如下所示:Javascript 在addEventListener中传递参数,javascript,firefox,firefox-addon,addeventlistener,dom-events,Javascript,Firefox,Firefox Addon,Addeventlistener,Dom Events,我正在开发一个Firefox扩展,并试图向addEventListener传递一个参数。我正在侦听页面标题中的更改,我的代码如下所示: function Test() { this.checkTitle = function( event ) { var func = function() { this.onTitleChange ( event ); }; var target = content.document.getElementsByTa
function Test()
{
this.checkTitle = function( event )
{
var func = function() { this.onTitleChange ( event ); };
var target = content.document.getElementsByTagName('TITLE')[0];
target.addEventListener('DOMSubtreeModified', func, false);
}
this.onTitleChange = function( e )
{
// do stuff with e
alert('test');
}
this.handleEvent = function (event)
{
switch (event.type)
{
case "DOMContentLoaded":
{
this.checkTitle( event );
}
}
}
window.addEventListener ("DOMContentLoaded", this, false);
}
如果我使用func=函数{alertevent;},我永远不会得到“test”警报;它确实显示带有“[对象事件]”的警报。也试过不用这个。在func上,但仍然不起作用
如何才能将checkTitle参数事件访问到onTitleChange中?当浏览器调用事件处理程序时,这将引用元素,而不是您的实例 您需要在一个单独的变量中保存所需文件的副本:
var self = this;
var func = function(e) { self.onTitleChange (e); };
var target = content.document.getElementsByTagName('TITLE')[0];
target.addEventListener('DOMSubtreeModified', func, false);
这很有帮助,但只有在我将第2行更改为:var func=functionevent{self.onTitleChange event;};