- 締切済み
JavaScriptエラーが出ます…
2つのJavaScriptエラーが出て大変困っております。 どなたか分かる方いらっしゃいませんでしょうか? ※当方はJavaScriptは分かりません。 検索にて調査いたしましたが、情けないですがもうお手上げ状態です。 ▼1つめ----------------------------------------------▼ メッセージ: 'null' は Null またはオブジェクトではありません。 ライン: 8 文字: 3 コード: 0 コード内容 以下 var accordion=function(){ var tm=10; var sp=10; function slider(n){ this.nm=n; this.arr=[]; this.sel='' } slider.prototype.init=function(t,c,k){ var a,h,s,l,i; a=document.getElementById(t); h=a.getElementsByTagName('dt'); s=a.getElementsByTagName('dd'); l=h.length; for(i=0;i<l;i++){ var d=h[i]; this.arr[i]=d; d.onclick=new Function(this.nm+".process(this)"); if(k!=null&&c==i){this.sel=d.className=k} } l=s.length; for(i=0;i<l;i++){ var d=s[i]; d.maxh=d.offsetHeight; if(c!=i){d.style.height='0'; d.style.display='none'} } } slider.prototype.process=function(d){ var i,l; l=this.arr.length; for(i=0;i<l;i++){ var h=this.arr[i]; var s=h.nextSibling; if(s.nodeType!=1){s=s.nextSibling} clearInterval(s.timer); if(h==d&&s.style.display=='none'){ s.style.display=''; setup(s,1); h.className=this.sel} else if(s.style.display==''){setup(s,-1); h.className=''} } } function setup(c,f){c.timer=setInterval(function(){slide(c,f)},tm)} function slide(c,f){ var h,m,d; h=c.offsetHeight; m=c.maxh; d=(f==1)?Math.ceil((m-h)/sp):Math.ceil(h/sp); c.style.height=h+(d*f)+'px'; c.style.opacity=h/m; c.style.filter='alpha(opacity='+h*100/m+')'; if(f==1&&h>=m){clearInterval(c.timer)} else if(f!=1&&h==1){c.style.display='none'; clearInterval(c.timer)} } return{slider:slider} }(); ▲1つめここまで----------------------------------------------▲ ▼2つめ----------------------------------------------▼ メッセージ: 'obj.length' は Null またはオブジェクトではありません。 ライン: 238 文字: 10 コード: 0 コード内容 以下 http://www.myulond.com/js.txt ▲1つめここまで----------------------------------------------▲ どうぞ、ご教授よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- yyr446
- ベストアンサー率65% (870/1330)
もう一つのエラー方は、 <script type="text/javascript" src="mail/mailform.js" charset="utf-8"></script> の位置が悪い。 少なくとも、 <form id="mailform" method="post" action="mail/send.cgi" onsubmit="return sendmail(this);"> ------ </form> の書き出し完了より後でなければ、 var formId = 'mailform'; var obj = document.forms[formId]; で、objを取得できない。 </body>の直前に移動すべし。
- yyr446
- ベストアンサー率65% (870/1330)
ご提示されたページのソースを診て、 <div id"accordion">の下にある<script>中 var slider1=new accordion.slider("slider1"); slider1.init("slider"); の部分、 slider1.init("slider1"); の間違いのはずです。
補足
>slider1.init("slider1"); 上記の部分ですが、修正したらプログラムが起動しなかったです、、。
- luka3
- ベストアンサー率72% (424/583)
補足情報ありがとうございます。 拝見しました。 ◆1つめ 事業案内のhtmlの後半で以下のように書かれてあります。 ≫var slider1=new accordion.slider("slider1"); ≫slider1.init("slider"); ≫var slider2=new accordion.slider("slider2"); ≫slider2.init("slider2",0,"open"); ここでinitが2つあり、1つめの引数でIDを指定しますが、「slider」というIDは80行目に書かれてあります。 しかし、「slider2」というIDはどこにも存在していないためエラーが発生しているようです。 もしかするとslider2の方は必要ないのではないでしょうか。 削除してみて、どこかに悪影響があるようでしたらまた教えて下さい。 ◆2つめ 問い合わせページで以下のように書かれてあります。 ≫<form id="mailform" method="post" action="mail/send.cgi" onsubmit="return sendmail(this);"> 「mailform」というidはありますが、nameの「mailform」が存在しません。 「name="mailform"」を追加すればよいです。 (単にidをnameに変更するだけでもいいかもしれません)
お礼
おかげさまで、無事なおりました! どうもありがとうございました!
- luka3
- ベストアンサー率72% (424/583)
設置したページを見せてもらえるのが一番ですが、 HTMLの方が見えないとアドバイスも非常に限られます。 ・1つめ おそらくHTMLの中で「new Slider(・・・)」というのがあると思いますが、 その「new Slider(1つ目の引数,2つ目の引数,3つ目の引数,)」のうちの 1つ目の引数が間違ったIDを渡している。 ・2つめ FORMタグの中に、「mailform」という名前のフォームがないようです。
補足
早速のご回答ありがとうございます。 設置したページのほうですが、以下になります。 http://bvcincjp.com/ 事業案内とお問い合わせページにてエラーがでてしまいます… よろしくお願いいたします。
お礼
位置を変えたら、エラーが表示されなくなりました! ありがとうございました。