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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

4回答

15322閲覧

onloadの仕様について理解したい

TOKKIYNET

総合スコア16

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/12/18 11:31

###前提・実現したいこと
onloadについて理解する
###発生している問題・エラーメッセージ
onloadの仕様についてイマイチ理解ができていない

###該当のソースコード
ソース1

<body onload="document.FRM.submit()" > <form action="???.??" name="FRM" method="POST"> </form>

ソース2

<input type="hidden" onload="document.FRM.submit()"> <form action="???.??" name="FRM" method="POST"> </form>

###試したこと
調べた
###補足情報(言語/FW/ツール等のバージョンなど)
上記(ソース1)にも書きましたがonloadは<body>でよく見かけるのですが
(ソース2)のように<input>とか他の要素とかの時に使えないのですか??
わかりましたらご教授お願いいたします。

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

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

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

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

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

guest

回答4

0

ベストアンサー

もしかりにonloadが有効であったとしても
inputが読まれた時点で「FRM」というformはまだ読まれていないので
ご提示の方式では無理でしょう
formが読まれた後に実行するだけでよいのでは?

html

1<form action="???.??" name="FRM" method="POST"> 2</form> 3<script> 4document.FRM.submit(); 5</script> 6

nameをを元にformをつかむのはあまり得策ではないですが・・・

投稿2016/12/19 01:19

yambejp

総合スコア114843

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

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

0

onload 属性

「input要素がonload属性を持っているか」はHTMLの仕様書を読めば分かります。下記URLによればonload属性は存在しません。

ただし、<input type="image"> だけは load イベントが発生するようです(日本語訳には自信がないので誤りがあれば訂正のコメントを頂ければ有難いです)。

The task that is queued by the networking task source once the resource has been fetched, must, if the download was successful and the image is available, queue a task to fire an event named load at the input element
https://html.spec.whatwg.org/multipage/forms.html#image-button-state-(type=image)

(Google翻訳) リソースがフェッチされた後にネットワークタスクソースによってキューに入れられるタスクは、ダウンロードが成功してイメージが利用可能な場合、入力要素でloadという名前のイベントを発生させるタスクをキューに入れます。

※他の要素も同様の手順で調査可能なので、必要になった時に仕様書から逆引きすればいいと思います。

load イベント

UI Events によれば、load イベントはリソースを読み込むときに発火しなければならない、とあります。

input要素では読み込むべきリソースが存在しない為、onload 属性が存在しないのでしょう。

更新履歴

  • 2016/12/19 09:20 <input type="image"> の load イベントを追記

Re: TOKKIYNET さん

投稿2016/12/18 13:24

編集2016/12/19 00:20
think49

総合スコア18164

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

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

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

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

0

【onload Event】
http://www.w3schools.com/jsref/event_onload.asp

Supported HTML tags: <body>, <frame>, <iframe>, <img>, <input type="image">, <link>, <script>, <style>

投稿2016/12/18 12:50

kei344

総合スコア69407

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

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

kei344

2016/12/18 16:29

指摘ありがとうございます。考えてみれば style にロード動作があっても @import や url() で、style要素自身のロードではないですね。
think49

2016/12/18 17:04

そういう意味ではlink要素にonload属性が存在しない事実が不可解ですね。 何となく、セキュリティ上の理由がありそうですが…。 <input type="image"> もonload属性が存在しない気が。 http://www.w3schools.com/ は信頼性が低いかもしれない、と思い始めました。 onload Event(イベント名にonを付ける) にも違和感があります。
kei344

2016/12/18 17:39

object要素 や embed要素 も loadは拾えますね。 > http://www.w3schools.com/ は信頼性が低いかもしれない、と思い始めました。 私もそんな気がしてきました。 load がある要素一覧を質問者に提示したかったのですが、いまいちな選択でした。
think49

2016/12/19 00:26

> loadは拾えるようです。(Firefox/Chrome) すみません。「HTML Living Standard 仕様上は <input type="image"> に load イベントがない」と伝えたかったのですが、改めて仕様を探したら言及されていたので、私の回答に追記しておきました(日本語訳に自信がないので誤りを発見したら補足頂ければと)。 IDLに書かれていないイベントがあるとは想定外でした…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問