• ベストアンサー

Firefoxでjavascriptが無効

html5・CSS2.1でホームページを作成しています。 javascriptを使って下記メソッドを使ってクリックするたびに 画像のsrcを変えて違う画像を表示させようとしています。 document.all["hoge"].src IE9では有効なのですがFirefox8.0.1ではユーザが有効にする設定に しない限り無視されてしまします。 ですので、これをユーザが手間をかけずにjavascriptを有効にする方法は ありますでしょうか? それが無理なら上記の違う画像を表示する別の方法をご存知の方 教えていただけましたら幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>pの内容を変更したい場合上記の代わりというか Pの内容を書き換えてよいということね? こんな感じで <script> function func(){ var p=document.getElementById("hoge"); while(p.firstChild) p.removeChild(p.firstChild); p.appendChild(document.createTextNode("あいうえお")); p.appendChild(document.createElement("br")); p.appendChild(document.createTextNode("かきくけこ")); p.appendChild(document.createElement("br")); } </script> <input type="button" onclick="func()" value="go"> <p id="hoge">abcde<br>fghij<br></p>

timespace
質問者

補足

ご回答ありがとうございます。 まだ、試してはいないのですが 一度内容を消去してから追加するのですね。 しかも、タグと文章ごとに入れなおさなきゃいけないとは・・・ 安全性を考慮してjavascriptに制限を加えるのはいいのですが 不便ですね。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>一度内容を消去してから追加するのですね。 まぁ上書ってそういうものだと思いますが 考え方次第で、器をつくっておいてノードを入れ替えるとかでもいいです <head> <script> function func(){ var p1=document.getElementById("hoge"); var p2=p1.cloneNode(false); p2.appendChild(document.createTextNode("あいうえお")); p2.appendChild(document.createElement("br")); p2.appendChild(document.createTextNode("かきくけこ")); p2.appendChild(document.createElement("br")); p1.parentNode.replaceChild(p2,p1); } </script> </head> <body> <input type="button" onclick="func()" value="go"> <p id="hoge">abcde<br>fghij<br></p> </body> >しかも、タグと文章ごとに入れなおさなきゃいけないとは・・・ これはjavascriptが全てのものをオブジェクトとして扱うための処置ですね 面倒と言えば面倒だし、逆に管理しやすいといえば管理しやすく、 一般的にはこういう書き方をします・・・という例示です。 もちろんきちんと動くのならdocment.writeでもinnerHTMLでも好きにかいて かまわないです

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>document.all["hoge"].src idでアクセスするならdocument.getElementById("hoge").src nameを使ってオブジェクトにアクセスしたいということなら nameはユニークを保障しないため方法が適切ではないと思います

timespace
質問者

補足

できました。ありがとうございます。 ちなみに document.all["hoge"].innerHTML="あいうえお<br/>かきくけこ<br/>......."; pの内容を変更したい場合上記の代わりというか もっと適切な方法はございますでしょうか?

関連するQ&A

専門家に質問してみよう