表示される画像の幅が250picよりも大きい場合、その画像の幅を250picに縮小して再表示させるようなスクリプトを記述したいと思っています。
(表示される画像はPHPによってランダムに変更されます)
以下のように記述したところ、IE6.0.2では期待したとおりの動作をしましたが、NN4.7ではサイズが変更されずに表示されてしまいます。(エラーは出ませんでした)
どのように記述したらよいのか教えてください。
<記述したスクリプト>
<SCRIPT>
<!--
function img_width(){
if (document.logo.width > 250){
document.logo.width = 250;
}
}
// -->
</SCRIPT>
・・・中略・・・
<img src="<? echo $l_pass; ?>" name="logo" border=0>
No.1ベストアンサー
- 回答日時:
画像の高さや幅を扱うプロパティがNNとIEでは違うためにおこることですね。
image の height と width のプロパティはNNでは読取専用になっています。
なので
document.logo.width = 250;
とやっても無視されます。(エラーが出たほうがいい気がするけど・・・)
なので、NN4.xではレイヤで何とかする必要があります。
<SCRIPT language = "JavaScript">
<!--
function img_width(){
if (document.layers){
if (document.lay1.document.logo.width > 250){
document.lay1.document.open("text/html");
document.lay1.document.write("<img src='<? echo $l_pass; ?>' name='logo' border='0' width='250'>");
document.lay1.document.close();
}
}
else{
if (document.logo.width > 250){
document.logo.width = 250;
}
}
}
// -->
</SCRIPT>
・・・中略・・・
<SCRIPT language="JavaScript">
<!--
if (document.layers){
document.wirte("<LAYER top='xxx' left='xxx'>");
document.write("<img src='<? echo $l_pass; ?>' name='logo' border='0'>");
document.write("</LAYER>");
}
else{
document.write("<img src='<? echo $l_pass; ?>' name='logo' border='0'>");
}
//-->
</SCRIPT>
No.2
- 回答日時:
一部抜けてました
× document.wirte("<LAYER top='xxx' left='xxx'>");
○ document.wirte("<LAYER id='lay1' top='xxx' left='xxx'>");
xxxには適当な位置を指定してください。
この回答への補足
再度教えてください。
教えていただいたようにスクリプトを記述したのですが、画像が表示されないのです。(スクリプトエラーも出てしまいます・・・)
なにぶん初心者なものですから分からないことばかりで・・・申し訳ありません。
どのようにすればよいのかご教授ください。
<SCRIPT language = "JavaScript">
<!--
function img_width(){
if (document.layers){
if (document.lay1.document.logo.width > 250){ ←この行でエラーが出ているようです。
document.lay1.document.open("text/html");
document.lay1.document.write("<img src='<? echo $l_pass; ?>' name='logo' border='0' width='250'>");
document.lay1.document.close();
}
}
else{
if (document.logo.width > 250){
document.logo.width = 250;
}
}
}
// -->
</SCRIPT>
・・・中略・・・
<SCRIPT language="JavaScript">
<!--
if (document.layers){
document.wirte("<LAYER id='lay1' top='170' left='742'");
document.write("<img src='<? echo $l_pass; ?>' name='logo' border='0'>");
document.write("</LAYER>");
}
else{
document.write("<img src='<? echo $l_pass; ?>' name='logo' border='0'>");
}
//-->
</SCRIPT>
※IE6.0とNetscape 6.0では正常に稼動しています。
すみません・・・
上記のスクリプトに誤りがあったので訂正いたします。
画像が表示されないというより、レイヤーが表示されていないように思えるのですが・・・。
どのようにすればレイヤーが表示されるのでしょうか?
(初心者もいいところですよね・・・)
<SCRIPT language = "JavaScript">
<!--
function img_width(){
if (document.layers){
if (document.lay1.document.logo.width > 250){ ←この行でエラーが出ているようです。
document.lay1.document.open("text/html");
document.lay1.document.write("<img src='<? echo $l_pass; ?>' name='logo' border='0' width='250'>");
document.lay1.document.close();
}
}
else{
if (document.logo.width > 250){
document.logo.width = 250;
}
}
}
// -->
</SCRIPT>
・・・中略・・・
<SCRIPT language="JavaScript">
<!--
if (document.layers){
document.wirte("<LAYER id='lay1' top='170' left='742'>"); ←この行でもエラーが出ているようです。
document.write("<img src='<? echo $l_pass; ?>' name='logo' border='0'>");
document.write("</LAYER>");
}
else{
document.write("<img src='<? echo $l_pass; ?>' name='logo' border='0'>");
}
//-->
</SCRIPT>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHP echo バックスラッシュの使い方 img要素 2 2023/01/08 22:46
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- PHP 画像が表示出来ません。 1 2023/02/02 16:30
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Latexに関する質問です。
-
VBAでIEのボタンを押してメッセ...
-
背景ランダム
-
javascriptの基本的なことだと...
-
このjavascriptのif文、条件式...
-
LaTeX:数式を等号揃えにする方法
-
SafariのIframeで高さが取得で...
-
getパラメータ
-
ラジオボタンでreadonlyの切替え
-
文字を一文字ずつ表示
-
excle VBA とweb上の検索を利用...
-
DOM要素を削除しても、イベント...
-
showModalDialogで開いた画面を...
-
codejump 模写コーディングgall...
-
FireFoxのjavascriptで自動でキ...
-
同じIDで定義した要素の配列を...
-
<a>タグのテキストを取得
-
JavaScriptで文字列の特定文字...
-
jspからjavascriptの変数引継ぎ
-
C#テキストボックスの文字を配...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScript window.openで開く...
-
このjavascriptのif文、条件式...
-
FireFoxのjavascriptで自動でキ...
-
DOM要素を削除しても、イベント...
-
javascriptの基本的なことだと...
-
文字を一文字ずつ表示
-
showModalDialogで開いた画面を...
-
Null またはオブジェクトではあ...
-
Javascriptのhtml出力についてa...
-
codejump 模写コーディングgall...
-
LaTeX:数式を等号揃えにする方法
-
javascriptのdocument.allにつ...
-
excle VBA とweb上の検索を利用...
-
Latexに関する質問です。
-
乗換案内 VBAで操作したい
-
JavaScriptのdocument.all("変...
-
Javascriptで定期的にF5を押す...
-
選択によってsubmitボタンの色...
-
スマホでフォームにフォーカス...
-
compatModeとは?
おすすめ情報