【发布时间】:2011-10-19 11:08:56
【问题描述】:
我对javascript很陌生,所以请原谅我的无知。
我目前正在使用 SWFAddress 为 flex 应用程序构建深度链接。问题是浏览器历史记录功能在 IE9 中不起作用。
我想解决这个问题,而且看起来应该不难解决。
当我在 firefox 中调试脚本时,我收到以下错误消息:
Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMEventTarget.dispatchEvent]
this.dispatchEvent(new SWFAddressEvent(type));
这表明这段代码是罪魁祸首:
_dispatch = function(type) {
this.dispatchEvent(new SWFAddressEvent(type));
type = type.substr(0, 1).toUpperCase() + type.substr(1);
if(typeof this['on' + type] == FUNCTION)
this['on' + type]();
},
我已检查并确认 SWFAddressEvent 对象已正确实例化,没有任何问题。
问题似乎出在这里:
this.dispatchEvent = function(event) {
console.log(event);
if (this.hasEventListener(event.type)) {
console.log(event);
event.target = this;
for (var i = 0, l; l = _listeners[event.type][i]; i++)
l(event);
return TRUE;
}
return FALSE;
};
似乎由于某种原因,dispatchEvent 没有收到创建的 SWFAddressEvent。
有人可以解释该错误消息的含义吗?还有为什么页面第一次加载的时候,可以正常调度3个事件,但是再调度更多的事件,就好像失败了?
【问题讨论】:
标签: javascript swfaddress