- ベストアンサー
ネスケでdocument.write
質問があります。 <html> <head> <script type="text/javascript"> <!-- str = "a"; function func(){ document.open(); document.write( str ); document.close(); } --> </script> </head> <body onload = "func()"> </body> </html> というソースを組んだのですが、IE6なら正常に表示できたのにNetscape7だと表示されませんでした。 document.write("a")と記述すると表示できたのですが・・・。 本来組みたいソースは上記のstrが長文かつ多用するために簡略化したいのですが、何か良い方法はあるでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
実際に試してみたのですが、関数内で呼び出している変数が、document.write()メソッドのところだけ正常にグローバル変数として渡っていないようです。 なぜこういう現象がおきているのかはわからないのですが(バグ?)、とりあえずの回避策として、関数内でローカル変数を作り、その中にdocument.write()に渡したいグローバル変数を入れて、そのローカル変数を渡してやった場合は、表示できるようです。 str="a"; function func(){ var str1=str; document.open(); document.write(str1); document.close(); } このような感じで、関数内でローカル変数を新たに定義し、それをdocument.write()に渡せば回避できるようですね(varは必須のようです)。 参考になれば… 間違ってたら、ごめんなさい。
その他の回答 (1)
- flower_flower
- ベストアンサー率45% (5/11)
こんばんわ。 色々試してみた結果、document.open()をはずしたらネスケでも表示されました。 ※document.close()も両方はずしても表示はされるようです。 あまり理解できていないので、 参考URLを記載しますね
お礼
回答ありがとうございます。 確かに表示されました。 ただ、document.open()とdocument.close()は外したくないので、申し訳ないですがlead1976さんの方法で対処しようと思います。
お礼
回答ありがとうございます。 確かに表示されました。 当面は教えていただいた方法で対処します。