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

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

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

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

Q&A

2回答

5161閲覧

divタグのonload属性について

sacakoro

総合スコア35

JavaScript

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

0グッド

1クリップ

投稿2020/08/21 00:13

JavaScriptのonload属性についてご教示いただければ幸いです。

test.jsの内容は以下の通りです。

JavaScript

1 2 function loadAppStoreInfo() { 3 alert("Hello World"); 4 } 5

この時、

HTML

1<!DOCTYPE html> 2<html> 3<head> 4<title>サンプル</title> 5<script src="./test.js"></script> 6</head> 7<body onload="loadAppStoreInfo()"> 8<div id="T1"></div> 9</body> 10</html>

とすると、ブラウザには"Hello World"と表示されるのですが、

HTML

1<!DOCTYPE html> 2<html> 3<head> 4<title>サンプル</title> 5<script src="./test.js"></script> 6</head> 7<body> 8<div id="T1" onload="loadAppStoreInfo()"></div> 9</body> 10</html>

とすると、”Hello World”と表示されないのは何故なのでしょうか。bodyタグにもdivタグにもonload属性はあるのでdivタグでも実行されるのかと思いました。

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

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

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

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

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

m.ts10806

2020/08/21 02:08 編集

そもそも何をしようとしてonloadを使おうとしているのでしょうか。
guest

回答2

0

bodyタグにもdivタグにもonload属性はあるので

あるのかもしれませんが、このイベントは「他のリソースを呼ぶ」エレメントが、そのリソースを読み込み終えたときに発火するものですので(WHATWG)、通常の<div>で反応することはないものと思われます。

投稿2020/08/21 00:20

maisumakun

総合スコア145930

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

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

0

bodyタグにもdivタグにもonload属性はあるので

追記)ご質問のHTMLコード(DOCTYPE宣言文)より、HTML5における回答となります。

2020-08-21 現在の divタグに onload 属性はありません。

HTML5 は **Living Standard(生活水準標準)**として日々変化していますので、高めの頻度で確認するのが良いと思います。

以下の手順で確認しました(他の要素でも同様ですので、参考になさってください)。

  1. MDN <div>」で検索し、<div>: コンテンツ分割要素を確認(DOM インターフェイス HTMLDivElement との記載あり)。

  2. HTMLDivElement(リンク先)を調べると、現行仕様の属性/メソッドは HTMLElement から継承するもののみと分かる

  3. 親オブジェクトである HTMLElement(リンク先)を調べると、onload イベントは実装されていない。

  4. さらに親の Element でもプロパティ、メソッド、イベントの記載を確認(同様にonloadは未実装)

Node は確認するまでもなくEventTargetの実装のみ。

投稿2020/08/21 00:49

編集2020/08/21 01:45
AkitoshiManabe

総合スコア5434

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

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

maisumakun

2020/08/21 01:23

仕様はそうとして、ChromeやFirefoxで試してみると「'onload' in document.createElement('div')」はtrueとなります。
AkitoshiManabe

2020/08/21 01:37

ありがとうございます。 質問者様のHTMLコード(DOCTYPE宣言文)からHTML5と判断し、昨今の限定的な状況下を回答したつもりです。が、「サブリソース」を根拠に考えるほうが良いのかもしれませんね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問