IEでjavascriptが動作しない



 ◇-?IEでjavascriptが動作しない-masky-10/21-16:02(196)-No.426403
   ┣??Re:IEでjavascriptが動作しない...-masky-10/21-16:07(196)-No.426404
   ┃ ┗??!Re:IEでjavascriptが動作しない...-774-10/21-17:16(195)-No.426407
   ┃   ┗??!-Re:IEでjavascriptが動作しな...-masky-10/22-15:39(173)-No.426500
   ┗?!Re:IEでjavascriptが動作しない...-テツヤ-10/22-10:52(177)-No.426480
     ┗?!-Re:IEでjavascriptが動作しない...-masky-10/22-16:12(172)-No.426505
       ┗?!-!Re:IEでjavascriptが動作しな...-テツヤ-10/22-18:15(170)-No.426512
         ┗?!-!?Re:IEでjavascriptが動作しな...-masky-10/23-11:27(153)-No.426588
           ┗?!-!?!Re:IEでjavascriptが動作し...-テツヤ-10/23-12:49(151)-No.426598
             ┗?!-!?!【解決】Re:IEでjavascript...-masky-10/23-17:58(146)-No.426648
               ┗?!-!?!K~Re:IEでjavascriptが動作...-テツヤ-10/23-18:48(145)-No.426653

▲このページのトップに戻る
426403IEでjavascriptが動作しないmasky 2007/10/21-16:02

メーカー名:DELL デル
OS名:WindowsXp Professional
パソコン名:X10-60256
トラブル現象:ホームページ全般
ソフト関連:ブラウザInternetExplorer
--
下記のようにjavascriptを使ったホームページを作っています。

<td width="132" valign="top"><div align="center"><a href=http://xxx/details.jsp?sc_firm_side_code=044101-29181-028091&search_type=area&mode=list>
<img src="yyy/00028901p.gif" name="img028091" border="0">
<script type="text/javascript"><!--
if(document.img028091.width > document.img028091.height){   ★
document.img028091.width=120;
document.img028091.height=90;
}else{
document.img028091.width=90;
document.img028091.height=120;
}
// --></script>
</a></div></td>

上記「★」の部分で、画像が縦長か横長かを判定し、それによってサイズを変えています。

【問題点】
 全ての画像が縦長で表示されてしまう。ただし、Firefoxの場合は、画像をクリックしてリンク先に移動し、元のページに戻ると正常に(仕様通りに)表示される。
 IE6の場合は、常に縦長で表示される。


ちなみにjavascriptは有効になっています。
お手数ですが、ご教授ください。よろしくお願いいたします。

▲このページのトップに戻る
426404Re:IEでjavascriptが動作しないmasky 2007/10/21-16:07

記事番号426403へのコメント
補足します。

> 全ての画像が縦長で表示されてしまう。
全ての画像が、width=90 height=120 で表示されてしまいます。
(なのでjavascriptは動作しているが、判定がうまくいっていない?)

▲このページのトップに戻る
426407Re:IEでjavascriptが動作しない774 2007/10/21-17:16

記事番号426404へのコメント
maskyさんは No.426404「Re:IEでjavascriptが動作しない」で書きました。

こちらのIE6、FireFox2、Opera9環境では正常に表示されました。
他の部分で不具合が起きているのでは?

▲このページのトップに戻る
426500Re:IEでjavascriptが動作しないmasky 2007/10/22-15:39

記事番号426407へのコメント
774さんは No.426407「Re:IEでjavascriptが動作しない」で書きました。
>774さん
 コメントありがとうございます!
 そうですか、では他の部分に目を向けてみます。

▲このページのトップに戻る
426480Re:IEでjavascriptが動作しないテツヤ 2007/10/22-10:52

記事番号426403へのコメント
 IMG要素が出現してからすぐだと、画像の大きさが確定していない可能性があると思います。
<BODY onload="Init()">
<IMG …>
<SCRIPT type="text/JavaScript"><!--
function Init(){
ここで記述する
}
//--></SCRIPT>

▲このページのトップに戻る
426505Re:IEでjavascriptが動作しないmasky 2007/10/22-16:12

記事番号426480へのコメント
テツヤさんは No.426480「Re:IEでjavascriptが動作しない」で書きました。
>テツヤさん
 コメントありがとうございます!
 早速試してみたところ、複数の画像のうち、最後の1つだけが正常に表示されました。
 それ以外は、オリジナルのサイズで表示されてしまいました。

【HTML】
<body onload="Init()">
〜中略〜
<img src="http://www.century-21.co.jp/special/builder/genbaimage/00028091p.gif" name="img028091" border="0">
<script type="text/javascript"><!--
function Init(){
if(document.img028091.width > document.img028091.height){
document.img028091.width=120;
document.img028091.height=90;
}else{
document.img028091.width=90;
document.img028091.height=120;
}
}
// --></script>
〜以降、複数の画像について同様の記述〜

 複数の画像がある場合は、さらに何か記述する必要があるのでしょうか?
 お手数ですが教えてください。

▲このページのトップに戻る
426512Re:IEでjavascriptが動作しないテツヤ 2007/10/22-18:15

記事番号426505へのコメント
maskyさんは No.426505「Re:IEでjavascriptが動作しない」で書きました。
> 複数の画像がある場合は、さらに何か記述する必要があるのでしょうか?
> お手数ですが教えてください。
 その必要な分の記述をするしかないと思います。
 画像がかなりある場合はそれなりに組む。
 例えば画像ファイル名、横幅、高さのデータを持つ配列を定義してそれを処理するとか。わかる?、具体的なソースコードが必要?。
 具体的には…ちょっと組んでみた、《
<HTML>
<HEAD>
<TITLE>タイトル</TITLE>
<META http-equiv="content-type" content="text/html; charset=SHIFT_JIS">
<META http-equiv="Content-Style-Type" content="text/css">
<META http-equiv="Content-Script-Type" content="text/javascript">
<STYLE type="text/css"><!--
IMG.Pict{border:0}/* 他の画像に影響することを防ぐ為に指定した方がいい */
--></STYLE>
</HEAD>
<BODY onload="Init()">
<IMG class=Pict src="http://www.century-21.co.jp/special/builder/genbaimage/00028091p.gif" name="img028091">
<IMG class=Pict src="http://www.century-21.co.jp/special/builder/genbaimage/00028092p.gif" name="img028092">
<IMG class=Pict src="http://www.century-21.co.jp/special/builder/genbaimage/00028093p.gif" name="img028093">
<SCRIPT type="text/JavaScript"><!--
function Init(){
var IObjC=document.images; //画像のコレクションを得る
var I;
for(I=0; I<IObjC.length; I++){
if(IObjC(I).name.indexOf("img")>=0){ //nameに「img」を含んでいるなら
if(IObjC(I).width>IObjC(I).height){
IObjC(I).width=120;
IObjC(I).height=90;
}else{
IObjC(I).width=90;
IObjC(I).height=120;
}
}
}
}
--></SCRIPT>
</BODY>
</HTML>
》こんな感じでどうですか?。
 画像は文書に最初から記述してあるので、配列データは要らなかったな。

▲このページのトップに戻る
426588Re:IEでjavascriptが動作しないmasky 2007/10/23-11:27

記事番号426512へのコメント
テツヤさんは No.426512「Re:IEでjavascriptが動作しない」で書きました。
なるほど。javascriptのオブジェクトはこうやって書くんですね。
試してみたところ、IE6では正常に表示されましたが、
Firefoxではオリジナルサイズで表示されてしまいました。

調べてみたんですが、原因が分かりません。
度々申し訳ありませんが教えてください。



▲このページのトップに戻る
426598Re:IEでjavascriptが動作しないテツヤ 2007/10/23-12:49

記事番号426588へのコメント
 あ、そうか…Fierfoxもか。
 alert(…)でデータを表示してみたら、IObjCはコレクションなので「IObjC(I)」でOKだと思ったのですがFirefoxでは「IObjC[I]」の配列指定でないとダメでした。
<HTML>
<HEAD>
<TITLE>Test12</TITLE>
<META http-equiv="content-type" content="text/html; charset=SHIFT_JIS">
<META http-equiv="Content-Style-Type" content="text/css">
<META http-equiv="Content-Script-Type" content="text/javascript">
<STYLE type="text/css"><!--
IMG.Pict{border:0}/* 他の画像に影響することを防ぐ為に指定した方がいい */
--></STYLE>
</HEAD>
<BODY onload="Init()">
<IMG class=Pict src="http://www.century-21.co.jp/special/builder/genbaimage/00028091p.gif" name="img028091">
<IMG class=Pict src="http://www.century-21.co.jp/special/builder/genbaimage/00028092p.gif" name="img028092">
<IMG class=Pict src="http://www.century-21.co.jp/special/builder/genbaimage/00028093p.gif" name="img028093">
<SCRIPT type="text/JavaScript"><!--
function Init(){
var IObjC=document.images; //画像のコレクションを得る
var I;
for(I=0; I<IObjC.length; I++){
if(IObjC[I].name.indexOf("img")>=0){ //nameに「img」を含んでいるなら
if(IObjC[I].width>IObjC[I].height){
IObjC[I].width=120;
IObjC[I].height=90;
}else{
IObjC[I].width=90;
IObjC[I].height=120;
}
}
}
}
--></SCRIPT>
</BODY>
</HTML>

▲このページのトップに戻る
426648Re:IEでjavascriptが動作しないmasky 2007/10/23-17:58

記事番号426598へのコメント
テツヤさんは No.426598「Re:IEでjavascriptが動作しない」で書きました。
テツヤさんありがとうございました!
上記の記述で問題なく動作しました。

結果の確認は、alertを使っているんですね。
非常に勉強になりました。ありがとうございました。

▲このページのトップに戻る
426653Re:IEでjavascriptが動作しないテツヤ 2007/10/23-18:48

記事番号426648へのコメント
 デバッグには以下のような感じのを使います
alert("D="+D)//一般的に使用。

if(I==0)alert(D);//ループ中に使用するなど。

window.status="D="+D;//画面を止めたくない場合。

try{
//実行するスクリプトの記述。エラーが起きそうな場所を山を掛ける時に使う方法。
}catch(Err){
alert(Err.description+":D="+D)
}

//●Debug用
//処理:メッセージの表示
//編集:2007.10.20 by T.A.
//呼出:Message(Str);
//引数:Str=文字列、その他のタイプの値。
//解説:1秒間画面に表示。
document.write("<SPAN id=DocMessage style=\"padding:5px; background-color:menu; color:black; position:absolute; display:none\"></SPAN>")
var MessageTimerID=false;
function Message(Str){
if(!MessageTimerID){
DocMessage.innerHTML=Str;
}else{ //当処理が二重起動だ
clearTimeout(MessageTimerID);
DocMessage.innerHTML=DocMessage.innerHTML+"<BR>"+Str;
}
DocMessage.style.left=(document.body.scrollLeft+100)+"px";
DocMessage.style.top=(document.body.scrollTop+100)+"px";
DocMessage.style.zIndex=zIndexTikai+1;
DocMessage.style.display="inline";
MessageTimerID=setTimeout("MessageOff()",1000);
}
function MessageOff(){
DocMessage.style.display="none";
MessageTimerID=false;
}
//そしてスクリプト中に
Message("D="+D)
//と記述する

 状況に応じて色々あります。

A1.本ページは参考になりましたか? 又はアドバイスがありますか?
解決 参考になった 参考にならなかった アドバイスする

A2.何度目の訪問ですか?
初めて来た   数度目(2〜4) 5回以上来ている   管理人:

A3.何か一言どうぞ(アドレスは書くことができません)

A4.アドレスがあればどうぞ(1つまで)


↑↑↑↑よろしければ押してください↑↑↑↑

何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり

参考回数投稿日時何か一言