フォームの中の画像の書き換え

[上に] [前に] [次に]
みんこ 1999/03/18(木) 17:31:03
JavaScriptでボタン押したら画像が変わるスクリプトを作ってます。
それで、レイアウトの都合上、上下にテキストボックスが来ていますので、フォームの中に書き換える画像タグも突っ込みました。
で、やってみたらMacIEでエラーが出ました。NNだと動きます。
どうも、
function cng()
document.formname.imagename.src = "xxx.gif";
だと動かなくて
function cng()
document.imagename.src = "xxx.gif";
だと動くみたいです。
当然ながらNNは逆です。

これはつまり、フォームの中に画像をいれたらだめよ、という
ことなんでしょうか。平たく言えば。
あちこちのサンプル見てもフォームの中に画像入れている
サンプルはなかったです。
確かにフォームの中からだせば動きます。

ええと、つまり、フォームの中に書き換え画像入れちゃだめなんでしょうか?

たこすけ 1999/03/18(木) 18:07:27
>ええと、つまり、フォームの中に書き換え画像入れちゃだめなんでしょうか?

WinのIE4とNC4、MacのIE4とNC4でそれぞれ見た限りでは画像は切り替わりました。
(ちなみにdocument.images['imagename'].src = "xxx.gif";と書きました)
だから自分的には「フォーム内の画像書き換えはOK」としたいのですが。
#てゆーかOKじゃないと困る

MacはIE3でも画像が切り替わるんでしたっけ?
うにゃ、(Macの)IE3だとわからんな〜。

Winの場合でもIE3だとテーブル内のフォームの書き換えうまくいかんし
やっぱりビルが悪いのか?パイぶつけます?

ここまで書いて、口調が乱暴な上に少しも参考になっていない事に気付きました。
みんこさん、ごめんなさい。

みんこ 1999/03/18(木) 18:27:29
document.images['imagename'].src = "xxx.gif";だと
NN3はオッケー、IE3はエラー。
document.imagename.src = "xxx.gif";だと
NN4はオッケー、NN3はエラー。
document.formname.imagename.src = "xxx.gif"; だと
NNはオッケー。IEはエラー。でした。オブジェクトじゃないとまで言われました。

ちなみにMacIE3は中途半端に画像書き換えに対応しています。
(今の状況ではそんな感じです)

たこすけ 1999/03/18(木) 18:43:17
IE = document.imagename.src = "xxx.gif";
NN = document.formname.imagename.src = "xxx.gif";
という事ですよね。
う〜ん、ブラウザ分岐しちゃえば良いのだろうけど
なんかくやしいですね。

>レイアウトの都合上、上下にテキストボックスが来ていますので
これってテキストボックス毎にフォーム作っても駄目ですか?

みんこ [HomePage] 1999/03/18(木) 23:35:25
>これってテキストボックス毎にフォーム作っても駄目ですか?
全部つながってるんですね〜これが。
画像使ってじゃんけんとか丁半みたいなことをしているわけで、
結果だの勝ち負けだの連勝回数だのをテキストボックスで出しているので
わけるとだめみたいな気がします。

分岐と言うのもなんだかあほくさいのでやはり外に出した方がいいみたいですね。

とかいいつつ一応阿呆なサンプルページを乗せましたので
時間と心と知識に余裕のある方は御教授下さい。
数名にテストしてもらいましたが「あたらなくていらいらする」とお墨付きを
いただいたゲームです。

たこすけ 1999/03/19(金) 10:09:32
>>これってテキストボックス毎にフォーム作っても駄目ですか?
>全部つながってるんですね〜これが。
というよりも
>フォームの中に書き換え画像入れちゃだめなんでしょうか?
これに対して何の解決にもなっていない発言ということに
おウチに帰ってから気がつきました。(←わしってタコだなぁ)

サンプルも覗いてみました。
三連勝なんてとても出来ません。(ハムの奴がぁぁぁ)

で、ソースみて思ったのですが
var img = new Array();
↑これって必要ですか?
imgが配列として宣言されているのに配列として使ってないし
imagenameと同じだから当たっちゃうような気がするのですが・・・・。
#しかし私もJavaScriptに詳しい訳ではないので自信がにゃい。

>document.formname.imagename.src = "xxx.gif"; だと
>NNはオッケー。IEはエラー。でした。オブジェクトじゃないとまで言われました。
ということは、if(document.formname.imagename)でIEは真を返さないのかな?
これを利用してonLoadで変数にdocument.formname.imagenameかdocument.imagename
の対応する方を代入すればと思ったのですが・・・
>分岐と言うのもなんだかあほくさいので
確かに。

みんこ 1999/03/19(金) 10:55:52
>var img = new Array();
>↑これって必要ですか?
これは画像を先読みさせるためだけのものです。Win3がどうしても
「images」を理解しないので研究の結果、こうなりました。
理屈は全く分かってないですがとりあえず宣言しておかないと文句言われます。(消極的)
言われてみたらこのあたり丸ごと必要ない気もするんですが。(弱気)

でもimagename変えてみても結果は同じでした。
面倒だから画像外に出そうと思います。その方が早いので。
これがバグなのかIEの心遣いなのかNNの陰謀なのかはわかりませんが
まあそれで動くんなら逆らいません。流されます。
どうもでした。

みんこ 1999/03/19(金) 10:56:24
[[解決]]
押すの忘れちゃった。

[上に] [前に] [次に]