0

私はごく最近、Firefoxのjavascriptの問題について投稿しましたが、問題はおそらくdocument.write()がスクリプトを上書きしている可能性があることが示されました。スクリプトの上書きの問題を解決し、情報のスタックを回避するためにIDを使用することが提案されました

ただし、IDをjavascriptおよびhtmlコードに実装しようとすると、firebugが次のことを報告していることがわかりました。

"TypeError: document.getElementById("author_container") is null"

事実にもかかわらず、この場合も、IDはすでに次のように定義されています。

<p id="author_container"></p>

そして、明らかにタイプミスはなく、スクリプトをヘッドセクションに再配置するか、スクリプトがまったく違いをもたらさない前にpが発生するように変更します。(スクリプトが最初に発生したにもかかわらず、他の例は正常に実行されることに注意してください)。

IDとgetElementByIdの既存の例を使用して、Firefoxで実行すると、正常に実行されます。

http://pastebin.com/FTEX1HGE

しかし、コードを実行しようとすると、それほど大きな違いはないように見えますが、問題が発生します:http: //pastebin.com/XfGUpZAS

ここで何かが足りませんか?Firefoxで動作するようにコードを変更するにはどうすればよいですか?Firefoxを使用すると、コードを正しく実行できますか?(来週調べますか?)

4

1 に答える 1

2

</body>スクリプトをページの下部、終了タグの直前に配置します。つまり、スクリプトタグをの最後のタグにしdocument.bodyます。これにより、スクリプトを開始する前にDOMツリーが完全に読み込まれます。

多くの問題は別として、本当の問題は関数document.open内のステートメントGenerateCoordです。これでドキュメント全体がクリアされ、その後、実際には、IDを取得するための要素が残りません。これはそれなしのjsfiddleです。

于 2012-08-19T19:17:43.507 に答える