人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascriptの質問です。

document.img.src = document.imgtoukou.imgaddress.value;
※img、は<img>のname、imgtouroku、imgaddressはフォームのnameです。

以上のようなコードで画像の入れ替えをしようと考えましたが、IE6以外では動作しませんでした。
問題点または、この機能を実現するコードを教えてください。

●質問者: AKI-NAMI
●カテゴリ:ウェブ制作
✍キーワード:IE6 JavaScript name SRC コード
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● miyatyu
●60ポイント

>imgaddressはフォームのnameです。

という表現から、ユーザーが、type=fileのフォームで選択した画像(ローカル環境(ユーザーのパソコン上)の画像)を選択してもらってサムネイルか何かを表示しようとしているのだと思います。


ブラウザがユーザーのローカル環境のファイルに直接アクセスするのは危険なのでIE以外では制限されているので成功しないのです。(むしろ、IEこそが危険)


ただ、srcで指定するURLを、file:// のようにして書き換えればFirefoxでも動作するようですので、以下のエントリーを参考にしてください。


http://codeweb.seesaa.net/article/6891945.html

http://codeweb.seesaa.net/article/7762344.html

◎質問者からの返答

投稿前にサムネイルを見ながらコメントを書いてもらおうと思っていました。

>>むしろ、IEこそが危険

なるほど。

file://? では参照ボタンからの自動入力で出てこないので無理ですね。


2 ● yo-kun
●50ポイント

左辺値を

document.images["img"].src
document.getElementByName("img").src

右辺値を

document.getElementByName("imgaddress").value

などに変えてみてはどうでしょうか?


http://www.openspc2.org/JavaScript/Ajax/Ajax_study/chapter05...

http://www.openspc2.org/JavaScript/Ajax/Ajax_study/chapter05...

◎質問者からの返答

これでは動きませんでした。。。

さらにIE6.0でも画像の差し替えが効かなくなりました。

やはりセキュリティの観点でしょうか。


3 ● ElekiBrain
●50ポイント

http://q.hatena.ne.jp/answer(ダミーURL)


nameではなくid属性を使い、getElementByIdで取得、プロパティの値をsrcとして変化させています。


<script type="text/javascript" language="javascript">

<!--


function imageChange(imageTag , imageName){

document.getElementById(imageTag).src = imageName;

}


//-->

</script>

====================================================================

<form action="#">

<img id = "imgField" src = "air.bmp" alt = "air.bmp" width = "300" height = "200" />

<input type = "button" value = "ChangeButton" onClick = "imageChange('imgField','任意の画像');" />

</form>


もし違う意味でしたら申し訳ありません。

valueという部分が気にかかりましたが、一口にvalueと言ってもinputの type=button・type=text・type=imageであるかによってコードが違ってきますので、今回は見送りました。

◎質問者からの返答

上の方の内容と考え方は同じですよね?

IE6.0ではサッと画像が入れ替わるのですが、、、


4 ● ardarim
●50ポイント

W3C準拠の書き方です。

DOM level 2 Core

DOM level 2 HTML


document.getElementById("img").src = document.getElementById("imgtoukou").imgaddress.value;
◎質問者からの返答

英語不得意なのでどこを辿ってよいのか時間がありません。

結局firefoxではローカルファイルへのアクセスがだめということなので、書き方以前の問題のようでした。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ