Java ベース (JSF) サーバーの小さな JavaScript シミュレーションを作成しています。ブートストラップ JavaScript ファイルは、AJAX を使用して一連のファイルをダウンロードして解析し、大きな HTML 文字列を生成します。この HTML 文字列は、完全な HTML ドキュメントです。ドキュメントタイプ、ヘッド、スクリプト インクルード、インライン スクリプト、ボディなどがあります。
私が実際の JSF バックエンドを使用したくない理由は、純粋な UI 環境を使用して、Java/Oracle サーバーによる速度低下なしにコードをテストできるようにしたいからです。
自分のコード (.zip ファイルなど) を誰とでも共有したいのですが、マシンにサーバーが既にインストールされていなくても、ブラウザーで (AJAX 呼び出しが行われている間は小さな読み込み画面で) ページを開くことができるはずです。 .
その質問への答えにより、さらに調査するようになりました。別のエラーに遭遇しましたが、説明できないようです。
Fiddle #1 : これは、iframe の document.write を使用して HTML を iframe に入れようとします。この HTML には、新しい履歴状態をプッシュするスクリプトがありますhistory.pushState(null, null, hash)
フィドル#2:これはHTMLをiframeに入れようとしますが、今回は単にlocation.hash = hash
どちらのフィドルも Chrome と Safari と IE 9 では正常に動作するようですが、Firefox では次のエラーが発生します。
NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHistory.pushState]
私はこのエラーを理解していません - history.pushState(null,null,"#test")
FireBug の javascript コンソールを使用して、Firefox の任意のページで同じコードを実行すると問題なく動作しますが、この特定の状況では動作しません。
document.open(); document.write(html); document.close()
(iframe を作成する代わりに) 現在のページでドキュメントを実行しようとしましたが、同じ問題が発生しました。これは、Firefox で何もデバッグできなくなったことを意味します。少なくとも iframe アプローチでは、ブレークポイントが機能します。
誰でもこの問題に光を当てることができますか?
このエラーを見つけることにつながる、昨日尋ねた別の関連する質問を次に示します。