ここから本文です

htmlの<p>タグの中など<script>タグを入れるのはアリなのでしょうか?

klt********さん

2014/8/1417:05:07

htmlの<p>タグの中など<script>タグを入れるのはアリなのでしょうか?

一応HTML5

たとえば、、、

例1
htmlの<p>~</p>タグなどの中に、<script>~</script>タグを入れる。
<p><script>document.write("ユーザーエージェント:" + navigator.userAgent);</script></p>


もしくは、、、
例2
<script>~</script>タグの中に、htmlの<p>~</p>タグなどを入れる。

<script>document.write("<p>" + "ユーザーエージェント:" + navigator.userAgent + "</p>");</script>


こういう場合、どちらの指定が正しいとかあるのでしょうか?一応同じく表示されています。
http://liveweave.com/
あとでデバッグや編集することを考えると例1の方がいいような気がしますが。。。


ついでに<noscript>を考えてみると、
例1 - no
<p><noscript>スクリプト無効状態</noscript></p>



例2 - no
<noscript><p>スクリプト無効状態</p></noscript>

だと表示結果は、

例1 - no
スクリプト無効状態


例2 - no
<p>スクリプト無効状態</p>

となるので、結局は例1がいいのかなと。。。?

閲覧数:
435
回答数:
2
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

bor********さん

2014/8/1510:11:26

<p>は、HTML5の規格では、「フローコンテンツ」に分類されています。

<script>は、html5の規格では、「フレージングコンテンツ」に分類されています。
「フレージングコンテンツ」とは、文書のテキスト及び段落内レベルでそのテキストをマークアップする要素です。

<p>がフローコンテンツであるため、その中のテキストをマークアップするためにフレージングコンテンツを使用する事が可能です。

従って、言い換えれば、<script>は<p>の子要素になることが可能です。

今回のご質問の例では、<p>のテキストで表したいテキストが、ユーザーエージェントであり、それは閲覧している人のブラウザによって異なるため、動的に表示させるべく、<script>タグを<p>の中に使うのは妥当です。

より詳細を知るためには、HTML5の仕様書を読まれると宜しいかと思います。
http://momdo.s35.xrea.com/web-html-test/spec/html5-dev/dom.html#phr...

w3cのHTML validatorを使っても、正しいコーディングであると判断されます。
http://validator.w3.org/check
(ただし、<script type="text/javascript">と書いて下さい。)

&lt;p&gt;は、HTML5の規格では、「フローコンテンツ」に分類されています。...

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

hez********さん

2014/8/1523:15:15

> <script>document.write("<p>" + "ユーザーエージェント:" + navigator.userAgent + "</p>");</script>

本来は、上記のような書き方はダメです。次のようにすれば簡単です。

<script>document.write("\x3Cp>" + "ユーザーエージェント:" + navigator.userAgent + "\x3C/p>");</script>

しかし「ダメな書き方」をするページが過去にあまりに多かったので、ブラウザは常に救済措置をとってきました。

じゃあもういっそのこと……ということで、HTML Standard(旧 HTML5)では「ダメな書き方」を文法的に許容することにしました。この結果、HTML Standard は SGML/XML に準拠しないものになりました。

あとまあ、script 要素の実行前・実行後も妥当な文書になっていること、noscript 要素は例えタグをはぎ取ったとしても妥当な文書になっていることが原則です。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる