- 締切済み
JavaScriptで自動的に画像に表示されるALT属性を消したい
以前、こちらでご質問させて頂き、 下記のJavaScript記述を教えて頂いたのですが、 画像にALT属性が自動的に入ってしまい 色々手を入れているうちに混乱してきてしまいました。 複数サムネイル画像をScriptで呼び出し、 オンマウスで拡大画像を表示、 それぞれのサムネイルにもリンクを張るという 少し入り組んだ仕様です。 ALT属性がリンク先ページのURLを表示してしまうため、 どうしても気になって消したいのですが、 もし分かる方がいらっしゃれば教えて頂けないでしょうか・・・ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <title>TEST</title> <style type="text/css"> .smlimg { width:120px; height:80px; } #bigimg { width:600px; height:400px; } #a { width:600px; height:100px; overflow:auto; } </style> <div><img src="" id="bigimg"></div> <div id="a"><div id="b"></div></div> <script type="text/javascript"> //@cc_on var simage = 'p0.jpg p1.jpg p2.jpg p3.jpg p4.jpg p5.jpg'.split(' '); var bimage = 'p0.jpg p1.jpg p2.jpg p3.jpg p4.jpg p5.jpg'.split(' '); var jmpurl = 'htp:/test.xxx0.com htp:/test.xxx1.com htp:/test.xxx2.com htp:/test.xxx3.com htp:/test.xxx4.com htp:/test.xxx5.com '.split(' '); var bufimg = []; addEvent( window, 'load', init); addEvent( 'b', 'mouseover', chgimg ); addEvent( document.body, 'click', chgurl ); function init(){ var w=0; for(var i in simage){ bufimg[i] = new Image; bufimg[i].src = bimage[i]; var image = document.createElement('img'); with( image ){ src = simage[i]; alt = bimage[i];title = jmpurl[i]; className = 'smlimg'; } var p = document.getElementById('b').appendChild( image ); w+=p.offsetWidth; } document.getElementById('b').style.width=w+'px'; var r = Math.random()*i|0; setbimg( bufimg[r].src, jmpurl[r] ); } function chgimg( evt ){ var obj = evt.target || evt.srcElement; if( obj.className && obj.className == 'smlimg') setbimg( obj.alt, obj.title ); } function chgurl( evt ){ var obj = evt.target || evt.srcElement; if( obj.className == 'smlimg' || obj.id == 'bigimg' ) window.open( obj.title ); } function setbimg(s,t){with( document.getElementById('bigimg')){alt=s;title=t}; changeImage('bigimg',s,5,20);} function addEvent(elementId, evt, eventHandler, flag){ var element = ( typeof( elementId ) == 'string' )? document.getElementById( elementId ): elementId; element./*@if(1)attachEvent('on'+ @else @*/addEventListener(/*@end@*/evt, eventHandler, flag); } var ff=0; function changeImage( elementId, imgsrc, step, wtime ){ this.setOpacity = function(n){ this.opacity = n; this.obj.style./*@cc_on @if(1) filter = 'alpha(opacity='+ this.opacity+ ')'; @else @*/ MozOpacity = this.obj.style.opacity = this.opacity / 100;/*@end@*/ } this.go = function(){ var f=0; this.setOpacity( this.opacity += this.step ); if( this.opacity<0 || this.opacity>100 ) { clearInterval( this.tmid ); this.obj.parentNode.removeChild( this.obj ); ff=0; } } if(ff) return; ff=1; var tobj = ( typeof( elementId ) == 'string' )? document.getElementById( elementId ): elementId; tobj.style.position='absolute'; var wrap = document.createElement( 'img' ); wrap.src = tobj.src; wrap.style.top = tobj.offsetTop +'px'; wrap.style.left = tobj.offsetLeft +'px'; wrap.style.width = tobj.offsetWidth +'px'; wrap.style.height = tobj.offsetHeight +'px'; wrap.style.position = 'absolute'; tobj.style.position=''; this.obj = document.body.appendChild( wrap ); tobj.src = imgsrc; this.setOpacity( 100 ); this.step = -step; this.tmid = setInterval((function(f_){ return function(){ f_.go.call(f_);}})(this), wtime); } </script>
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- fujillin
- ベストアンサー率61% (1594/2576)
document上のimgオブジェクトのalt属性を設定しているところだけ、変えれば良い。小さいイメージのalt設定と、大きいイメージの設定の2箇所です。 ご質問のスクリプトでは、「alt」が出てくるのは3箇所だけなので、内容がある程度わかれば簡単なはず。 まぁ、わからなくても、組み合わせは少ないので、実験して見ればトライアルアンドエラーで、大した手間もかけずに発見できるでしょう。
- SAYKA
- ベストアンサー率34% (944/2776)
alt= みたいになってるやつと altの値を使ってる部分を排除しちゃったら良いんじゃない?
お礼
ご回答ありがとうございます。 ・alt = bimage[i]; ・setbimg( obj.alt, obj.title ); ・{alt=s;title=t}; ・alt=s と置き換えているところの「s」 上記の削除したのですが、 サムネイルオンマウスでの画像自動切換えが動かなくなってしまいましたorz 必要なところまで削除してしまっているかもしれません。 どこを削除したら良いのやら・・・困りました。