こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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つめここまで----------------------------------------------▲


どうぞ、ご教授よろしくお願いいたします。

投稿日時 - 2011-01-06 22:32:28

QNo.6430210

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

もう一つのエラー方は、
<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>の直前に移動すべし。

投稿日時 - 2011-01-11 09:58:05

お礼

位置を変えたら、エラーが表示されなくなりました!
ありがとうございました。

投稿日時 - 2011-01-12 20:11:05

ANo.3

ご提示されたページのソースを診て、
<div id"accordion">の下にある<script>中

 var slider1=new accordion.slider("slider1");
 slider1.init("slider");

の部分、
 slider1.init("slider1");
の間違いのはずです。

投稿日時 - 2011-01-11 09:47:51

補足

>slider1.init("slider1");
上記の部分ですが、修正したらプログラムが起動しなかったです、、。

投稿日時 - 2011-01-12 20:11:56

ANo.2

補足情報ありがとうございます。
拝見しました。

◆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に変更するだけでもいいかもしれません)

投稿日時 - 2011-01-11 09:46:43

お礼

おかげさまで、無事なおりました!
どうもありがとうございました!

投稿日時 - 2011-01-12 20:12:53

ANo.1

設置したページを見せてもらえるのが一番ですが、
HTMLの方が見えないとアドバイスも非常に限られます。

・1つめ
おそらくHTMLの中で「new Slider(・・・)」というのがあると思いますが、
その「new Slider(1つ目の引数,2つ目の引数,3つ目の引数,)」のうちの
1つ目の引数が間違ったIDを渡している。

・2つめ
FORMタグの中に、「mailform」という名前のフォームがないようです。

投稿日時 - 2011-01-07 10:48:34

補足

早速のご回答ありがとうございます。
設置したページのほうですが、以下になります。
http://bvcincjp.com/
事業案内とお問い合わせページにてエラーがでてしまいます…

よろしくお願いいたします。

投稿日時 - 2011-01-07 20:57:01

あなたにオススメの質問