<noscript>:スクリプトが動作しない環境で表示する代替内容を指定する要素・HTMLタグの解説

取り扱い 標準仕様
カテゴリー メタデータ・コンテンツ
フロー・コンテンツ
フレージング・コンテンツ
親にできる要素 祖先に<noscript>が存在しない場合、フレージング・コンテンツを受け入れる要素、および<head>
子にできる要素 フロー・コンテンツおよびフレージング・コンテンツ
スクリプトの実行が無効かつ<head>の子孫である場合、任意の<link><meta><style>
スクリプトの実行が無効かつ<head>の子孫でない場合、任意のトランスパレント・コンテンツ
対応ブラウザ caniuseで確認

<noscript>タグの解説

<noscript>は、スクリプトが動作しない環境で表示する代替内容を表します。スクリプトが有効であれば何も表示しませんが、ブラウザがスクリプトに対応していない場合、またはユーザーがスクリプトを無効にしている場合に、この要素にが有効になり指定した内容が表示されます。

基本的に<noscript><script>の補助機能として配置します。<script>に書かれた内容が正しく実行された場合は無視されます。

<noscript>タグの特徴

  • レイアウトの初期値はブロックレベルです。文章の改行に影響を与えます。
  • 視覚的な効果は特に与えられません。スクリプトが無効の場合に内包された内容を表示します。
  • 同一のページ内に複数使うことができます。ただし、この要素自体を入れ子にすることはできません。

<noscript>要素に指定できる属性

グローバル属性
全てのHTML要素に指定できる共通の属性です。詳細は一覧表で解説します。
イベントハンドラ
全てのHTML要素に指定できるコンテンツ属性です。

<noscript>要素の使い方とサンプルコード

この要素の最も基本的な書き方は以下の通りです。<script>の内容が実行された場合は表示されませんが、ブラウザのJavaScriptを無効にすると<noscript>の中に記述した内容が表示されます。


<script>
	document.write("スクリプト実行");
</script>
<noscript>
	スクリプトを実行できませんでした。
</noscript>

ブラウザのデベロッパーツールを使って、JavaScriptをOFFにしてみましょう。Chromeであれば開発者ツールを開いた状態で設定画面に移動し、デバッグ項目にスクリプトをオフにする機能があります。


<script>
	day = new Date();
	document.write("表示日時を取得=");
	document.write(day);
</script>
<noscript>このページはJavaScriptを使用しています。</noscript>

<noscript>に関連するHTMLタグ

オブジェクトやスクリプトを埋め込む要素
<img> 画像ファイルを読み込む
<picture> 画像に対して複数のリソースを提供可能なコンテナを配置する
<figure> 写真や図表などの自己完結した要素を表す
<figcaption> 参照される写真や図表にキャプションを追加する
<canvas> スクリプトで描かれたグラフィックやアニメーションを表示する
<audio> ページに音声コンテンツを埋め込む
<video> ページに動画コンテンツを埋め込む
<source> 再生候補となる動画や音源などのメディアソースを指定する
<track> 音声や動画コンテンツにテキストトラックを提供する
<embed> 外部コンテンツを埋め込む
<object> 外部リソースのオブジェクトを埋め込む
<param> パラメーターを指定する
<script> HTMLで実行可能なスクリプトを埋め込む
<noscript> スクリプトが動作しない環境での表示内容を指定する
<meter> 規定範囲内の数量や測定値を表す
<progress> 作業の進捗状況を示すプログレスバーを表示する
<output> 計算結果やユーザーアクションの出力欄を作成する
<dialog> 任意のタイミングで開くダイアログボックスを作成する
<template> ページ読み込み後にスクリプトの実行によって挿入可能な要素を定義する
<slot> ウェブコンポーネントで独自に扱える枠を提供する