我有一个在页面加载时实例化的方法。该方法触发两个事件,window.onload和image.onclick。问题只是在任何给定时间事件之一(即:如果我评论 image.onclick 方法, window.onload 方法有效)。我如何让两者都起作用?
这在Firefox(mozilla)中运行良好,但在IE
中运行不正常例如
test.method = function()
{
window.onload = this.doSomeWork;
for (i = 0; i < images.length; i++) {
var image = images[i];
image.onclick = this.imageClickEvent;
}
}
答案 0 :(得分:1)
问题是你只能有一个onload事件。
我建议yuu应该尝试在这里找到的addEvent方法:
答案 1 :(得分:1)
在问题中没有足够的信息来弄清楚出了什么问题,但要注意的事项包括:
是doSomeWork()或imageClickEvent()中的代码,期望收到一个特指的东西?因为它不会,当你从其所有者对象上剥离一个方法以分配给事件处理程序时。
还有另一种写入window.onload或image.onclick的方法,你可能会覆盖吗?
答案 2 :(得分:0)
使用Firefox 3查看页面上的代码。然后打开Firefox错误控制台(Ctrl Shift J)以查看哪条线路正在断开。然后使用新信息更新您的问题。
答案 3 :(得分:0)
也许你应该在这里添加一个事件监听器,而不是试图捕获window.onload?
答案 4 :(得分:0)
在页面加载后触发test.method后,用一个新值覆盖window.onload:this.dosomework,所以在正文加载的时间范围内,你调用第一个函数,然后立即覆盖,然后第二个函数接管,并执行...你是否尝试将window.onload语句方式推送到test.method的底部?我的猜测,如果功能块太长,第二个window.onload永远不会被执行,因为窗口已经完成加载,它的毫秒数,但这就是全部需要
显然在firefox中,该函数在被覆盖之前执行,或者可能被加到当前的onload上,不确定技术性。再次尝试将onload推到底部,看看会发生什么
你不应该在身体加载后调用的任何其他函数中调用onload函数,因为无论你多么小心,你都不能依赖加载时间框架足够长以包含这两个事件的事实,你应该在调用(或完成)body标签之前附加到window.onload以确保捕获事件。