私はjavascriptに非常に慣れていないので、私の無知を許してください。
現在、SWFAddress を使用してフレックス アプリケーションのディープリンクを構築しています。問題は、ブラウザの履歴機能が 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 つのイベントを適切にディスパッチできるのに、さらにイベントをディスパッチすると失敗したように見えるのはなぜですか?