• 締切済み

IE以外のブラウザへの対応方法がわかりません。

はじめまして。 初めて質問させていただきます。 <form> <div id> ~ </div> <input></form> (内容省略) 上記のform内のimgクリックした時に、同画面の別の場所に、クリックしたimgを表示させるjavascriptを作ったのですが、IE以外のブラウザの場合、imgを選択しても別の場所に表示させることができません。 どうもcreateElementのあたりで動作しなくなっているようなのですが、対処方法がわからなくて困っています。 どなたか対処方をご教示願えませんでしょうか? よろしくお願いいたします。 下記が作成したjavascriptです。 <script language="javascript" type="text/javascript"> <!-- var hensOne = document.getElementById('chara_default').value; function seticon(gazo) { var hensTwo = document.getElementById('dhtmledit'); var hensThree="<img style=\"width:50;height:50;\" src=\"/blog/img/mychara/"+icon+".gif\">"; //--ここからが対応していないと思われる箇所です-- var hensFour = document.createElement('div'); var hensFive = document.createElement(hensThree); if( navigator.userAgent.indexOf("MSIE")!=-1 ){ document.entryForm2.kao.value =gazo; hensFour.appendChild(textNode); hensFour.id = 'dhtmledit'; hensFour.onkeyup = 'count_len(dhtmledit)'; hensTwo.parentNode.replaceChild(hensFour, hensTwo); } } //--> </script>

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

全体像が不明なので、よくわかりませんが… gazoの引数の内容は何か、iconってどこで値が決まっているのか、hensThree・hensFiveは何のための変数か(使っていない)とかいろいろありますけど、 >IE以外のブラウザの場合、imgを選択しても別の場所に表示させる >ことができません。 とりあえず、  if( navigator.userAgent.indexOf("MSIE")!=-1 ){ ~~ } で、IEだけ選択してreplaceChildしてるから、というのが直接の原因では? でも、目的が表示画像の内容を変えるだけなら、エレメントをわざわざ作らなくても、hensTwoのsrcを変更してあげればいいだけなのでは?  document.getElementById('dhtmledit').src="/blog/img/mychara/"+icon+".gif"; とか… 意味が違ってたら失礼。

03gtc003
質問者

お礼

fujillin様 返事が遅くなりまして、大変申し訳ありません。 不十分な説明なうえ、ご回答していただきまして、まことにありがとうございます。 fujillin様のご教示通り、 if( navigator.userAgent.indexOf("MSIE")!=-1 ){ ~~ } の箇所が原因で、ifをはずして、細かい修正を行ったことで、MSIE以外のブラウザへの対応が可能になりました。本当にありがとうございます。 そこで、この記述を参考に、ブログの絵文字のような機能をつくりたいと思っています。 その点につきまして、「ブログの絵文字のような機能をつくりたい…。」という質問タイトルで再度質問をさせていただいております。 お忙しい中だとは思いますが、ご教示はもちろんのこと、閲覧だけでもしていただけたら幸いです。 本当にありがとうございました。

関連するQ&A

専門家に質問してみよう