2011-10-19 12 views
1

私は非常にjavascriptに新しく、私の無知のために私を許します。コンポーネントが失敗したコードを返しました:0x80070057(NS_ERROR_ILLEGAL_VALUE)[nsIDOMEventTarget.dispatchEvent]

私は現在FlexAddressを使用してフレックスアプリケーション用の逆接続を構築しています。問題は、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つのイベントを適切にディスパッチできるのですが、それ以上のイベントをディスパッチすると失敗するように見えますか?これはSWFAddressが、Windowではありませんので、この部分は、イベントハンドラ内で実行される

this.dispatchEvent(new SWFAddressEvent(type)); 

答えて

0

問題がでthisへの参照であるように私には思えます。

私はそれをSWFAddress.dispatchEvent(new SWFAddressEvent(type));に置き換え、それを修正しました。私はJSの専門家ではありません。

最初の3つのイベントは、NS_ERROR_ILLEGAL_VALUEを作成するのとは異なる方法で生成されます。

+0

何ヶ月も前にswfaddressとflashを使用してリッチWebアプリケーションを開発することをやめました。この修正が機能するかどうかはコメントできません。しかし、私はこの答えを正しいものとしてマークします。将来誰かがより良い答えを持って来たら、それを正しいものとしてマークします:) – F21

関連する問題