- ベストアンサー
文字色をリアルタイムに1文字づつ変えられなかったのはなぜ?
windowsXP,IE6,SP2 ホームページのテキストの文字を1文字づつ変えてみたくて、参考書どおりに打ち込んだのですが、機能しませんでした。オブジェクトを指定して下さいというエラー表示が出されてしまいました。なにか、抜け落ちてるのかと、何度も見直したのですが、打ち間違いは無いようでした…。このスクリプトは、osはwindows,IEでのみ通用するものだそうです。 結局、GIFアニメーションを使う事で、代用したのですが、なぜ上手くいかなかったのか知りたいのです。 分かる方、よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 以下のプログラムで動作確認できました。 <html> <script type="text/javascript"><!-- count=0; function changeColor(cc) { txt1=document.all["strID"].innerText; txt2=""; for(i=0;i<txt1.length;i++) { if(count==i) {txt2+="<font color='" +cc+ "'>"+txt1.charAt(i)+"</font>";} else{txt2+=txt1.charAt(i);} } document.all["strID"].innerHTML=txt2; if(count++>txt1.length)count=0; setTimeout("changeColor('"+cc+"')",100); } //--> </script> <body onLoad="changeColor('red')"> <div id="strID">テキスト</div> </html> ----------------------------------------- <script type="text/javascript"><!-- //--> </script> の記述が漏れていませんか? そのまま実行すると、ActiveXのワーニング (警告)が出る場合もありますが、警告メッ セージをクリックして、「コンテンツを許可」 すれば、OKですよ。
その他の回答 (2)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#1の補足の内容で機能するように思えます。 むしろ #1のお礼の c=str.charAt(count); のstrがどこにもないので、そのためにエラーになっていると思えます。 (他の部分があるのかわかりませんが、cも他で使われていないしこの一文は必要ないのでは)
補足
本当にすみません。書いた後で、別のページを見ていた事に気付きました。おっしゃるように、お礼に書いたものは全く不要です。スクリプトはこれで全部で、他のセキュリティソフトを入れてないパソコンでも試したのですが、機能しなかったんです…。
- kokorone
- ベストアンサー率38% (417/1093)
そのソースコードを提示してください。 そうすれば、的確な助言がえられるはずですよ。
補足
澄みませんでした(汗)。もし、書きすぎていた場合は、削除してもらいますので、書きすぎてると教えてもらえると大変助かります。 count=0; function changeColor(cc) { txt1=document.all["strID"].innerText; txt2=""; for(i=0;i<txt1.length;i++) { if(count==i) {txt2+="<font color='" +cc+ "'>"+txt1.charAt(i)+"</font>";} else{txt2+=txt1.charAt(i);} } document.all["strID"].innerHTML=txt2; if(count++>txt1.length)count=0; setTimeout("changeColor('"+cc+"')",100); } <body onLoad="changeColor('red')"> <div id="strID">テキスト</div> 以上です。持っている参考書が平成13年の初版の、第3刷というもので、もしかしたら、SP2のせいがあるかもしれないと、素人考えで思ってます。お分かりでしたら、よろしくお願いします。
お礼
本当にありがとうございました!!!!ちゃんと動きました!!今回教えてもらった、「script type="text/javascript"」にしたら、ちゃんと色が変わってくれました。今度から使う事が出来ます!!ありがとうございました。