※ ChatGPTを利用し、要約された質問です(原文:画像拡大スクリプトのソース内で・・・疑問2)
画像拡大スクリプトのソース内で・・・疑問2
このQ&Aのポイント
高slide-with-gallery.jsという画像拡大のスクリプトを利用していますが、IEで不具合が発生しています。
1298行目のimg.src = this.src;の直前でalert(this.content.width);とすると値は「0」となり、1303行目のcontentLoaded : function()の直下でalert(this.content.width);とすると値が存在しています。
IEではthis.content.widthの値を正しく取得できません。
画像拡大スクリプトのソース内で・・・疑問2
highslide-with-gallery.jsと言う
画像拡大のスクリプトを利用していますが
IEで不具合があるので原因究明に
ソースを見ています
ですが、よくわからないので教えてください
1298行目
img.src = this.src;
この部分にくると
1283行目
img.onload = function () {
if (hs.expanders[exp.key]) exp.contentLoaded();
};
が実行されていることがわかりました(前回質問させていただきました)
============================================================--
if (hs.expanders[exp.key]) exp.contentLoaded();
これを
exp.contentLoaded();
だけにして実行しました
============================================================--
1298行
img.src = this.src;
直前で
alert(this.content.width);
とすると値は「0」ですが
1303行目
contentLoaded : function() {・・・・
直下に
alert(this.content.width);
とすると
値がすでに存在しています
いつ、代入されたのでしょうか?
============================================================--
と、ついでにもう1つ教えてください
this.content.widthの値ですが
IEでは正しい値を取得できません
============================================================--
test.html
<a href="images/test1.jpg" class="highslide" onclick="return hs.expand(this)">
<img src="images/test1.jpg" alt="" width="100" /></a>
images/test1.jpg・・・高さ360 幅360
images/test2.jpg・・・高さ100 幅900
明らかにサイズの違う画像を用意しました
============================================================--
HTMLは変えずに画像をリネームした場合(入れ替えたり)
images/test2.jpg・・・高さ360 幅360
images/test1.jpg・・・高さ100 幅900
============================================================--
初期表示時
this.content.widthの値は360
============================================================--
画像リネーム(1→2、2→1)してIEを開きなおして
(ついでにキャッシュもクリアーして)
再表示した際
this.content.widthの値は360
となってしまいます
ここは
this.content.widthの値は900となってもおかしくないのですが・・・
(同様にthis.content.heightもです)
============================================================--
いったいどこの値を取得してきてるのでしょうか?
この現象はIEだけです
お礼
ありがとうございます 参考にさせていただきます すごーく助かりました!!