質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

273閲覧

HTMLにおける、file属性(?)について

nishi835

総合スコア15

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2019/01/10 16:59

編集2019/01/10 17:04

MDN web docsを読んでいて、よくわからないところがあったので質問させていただきます。Webツールの作り方的なTipsで、ユーザが選択した画像のサムネイルを表示というような内容です。詳細は以下の通りです。


(前略)

javascript

1function handleFiles(files) { 2 for (var i = 0; i < files.length; i++) { 3 var file = files[i]; 4 var imageType = /image.*/; 5 6 if (!file.type.match(imageType)) { 7 continue; 8 } 9 10 var img = document.createElement("img"); 11 img.classList.add("obj"); 12 img.file = file; 13 preview.appendChild(img); 14 15 var reader = new FileReader(); 16 reader.onload = (function(aImg) { return function(e) { aImg.src = e.target.result; }; })(img); 17 reader.readAsDataURL(file); 18 } 19}

(中略)

img 要素には obj という class が追加され、DOM ツリーから探しやすくなります。また、file という属性を設け、そこに画像の File オブジェクトを指定します。これにより、あとで実際にアップロードする画像を保持しておけるのです。最後に、 appendChild() で新しいサムネイルを文書のプレビュー領域に追加します。

URL:https://developer.mozilla.org/ja/docs/Web/API/File/Using_files_from_web_applications


最後のほうの説明文に、「fileという属性を設け、そこに画像の云々」という記述がありますが、img要素にfileという属性があるのでしょうか?それとも、任意の属性を設定できるということなのでしょうか。

やっていることはなんとなくわかるのですが、以上のように文法的によくわからない部分があるので、お詳しい方ご教授お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/01/10 21:16

百聞は一見に如かず。動かしてみて.fileを設定する前にimg変数をconsole.log()すれば.fileが元々あるものなのかないものなのかは分かりますが、そこは試してみられたのでしょうか。
guest

回答1

0

ベストアンサー

file という属性を設け、そこに画像の File オブジェクトを指定します

多少不親切な説明ですね

img.file = file;

これは「属性」というよりは「プロパティ」です
属性を設定する場合は

javascript

1img.setAttribute("file",file);

のような書き方が適正です。

ただ属性はユーザーが勝手に拡張すると本来の機能と競合することがあるので
できればカスタムデータを利用するのが妥当です

javascript

1img.dataset["file"] = file;

投稿2019/01/11 00:52

yambejp

総合スコア114779

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問