Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 组件返回故障代码:0x80070057(NS\U错误\U非法\U值)[nsIDOMEventTarget.dispatchEvent]_Javascript_Swfaddress - Fatal编程技术网

Javascript 组件返回故障代码:0x80070057(NS\U错误\U非法\U值)[nsIDOMEventTarget.dispatchEvent]

Javascript 组件返回故障代码:0x80070057(NS\U错误\U非法\U值)[nsIDOMEventTarget.dispatchEvent],javascript,swfaddress,Javascript,Swfaddress,我对javascript非常陌生,请原谅我的无知 我目前正在使用SWFAddress为flex应用程序构建深度链接。问题是浏览器历史记录功能在IE9中不起作用 我想解决这个问题,而且似乎这不应该是一个困难的解决办法 在firefox中调试脚本时,我收到以下错误消息: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMEventTarget.dispatchEvent] this.dispatch

我对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个事件,但当涉及到分配更多事件时,它似乎失败了?

在我看来,问题在于对
的引用:

this.dispatchEvent(new SWFAddressEvent(type));
此部分在事件处理程序中执行,因此这不是
SWFAddress
,而是
Window

我将其替换为
SWFAddress.dispatchEvent(新的SWFAddressEvent(类型))和修复它-悬停我不是一个JS专家


前三个事件的生成方式不同于创建
NS\u ERROR\u非法\u VALUE的事件

几个月前,我已经停止使用swfaddress和flash开发富web应用程序,因此我无法评论此修复是否有效。不过,我会认为这个答案是正确的。如果将来有人会给出更好的答案,那么我会将其标记为正确:)