ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
noscript 要素とは
noscript 要素は、JavaScript が無効化されているか、もしくはブラウザが JavaScript をサポートしていないときだけ表示される代替コンテンツを記述するための要素です。
かつては「JavaScript を有効にしてください」と表示するための定番でしたが、現代では SEO / アクセシビリティ / 遅延読み込みのフォールバックなど、より洗練された用途で使われます。
基本構文
<script>
document.write('<p>JavaScript で表示されたコンテンツ</p>');
</script>
<noscript>
<p>このページは JavaScript を有効にするとより便利にご利用いただけます。</p>
</noscript>
配置できる場所
| 配置 | 使えるコンテンツ |
|---|---|
head 内 | link / style / meta のみ |
body 内 | 任意のフローコンテンツ (p / a / img など) |
<head>
<link rel="stylesheet" href="styles.css">
<noscript>
<link rel="stylesheet" href="no-js-fallback.css">
</noscript>
</head>
主要な用途
1. ユーザーへの通知
古典的だがいまでも有効な用途。アプリ内蔵ブラウザや厳格なセキュリティ設定の環境で表示されます。
<noscript>
<div class="alert">
このサイトを正しく表示するには JavaScript を有効にしてください。
</div>
</noscript>
2. SEO / クローラ向けの代替コンテンツ
SPA (React / Vue / Angular など) では JavaScript で描画するため、クローラに本文を渡せないケースがあります。最低限のリンクや要約を noscript に書いておくと SEO 補助になります。
<div id="app"></div>
<script src="app.js"></script>
<noscript>
<h1>サイトタイトル</h1>
<p>このサイトは JavaScript で動作しています。
JavaScript なしでも以下のページから情報を取得できます。</p>
<ul>
<li><a href="/articles">記事一覧</a></li>
<li><a href="/about">運営者情報</a></li>
<li><a href="/contact">お問い合わせ</a></li>
</ul>
</noscript>
3. 画像の遅延読み込みフォールバック
JS で画像を遅延読み込みする実装では、JS 無効環境で画像が表示されなくなります。noscript に通常の img を入れて回避。
<!-- 遅延読み込みする画像 -->
<img class="lazy" data-src="/photo.jpg" alt="写真">
<!-- JS 無効時のフォールバック -->
<noscript>
<img src="/photo.jpg" alt="写真">
</noscript>
近年はネイティブの loading="lazy" 属性が普及したため、この用途は減少傾向。
4. アクセス解析のフォールバック
Google Analytics や類似のアクセス解析は JS で動くため、JS 無効環境のアクセスを記録できません。noscript 内に画像ピクセルを入れて代替計測。
<noscript>
<img src="/track.gif?nojs=1" alt="" style="display:none">
</noscript>
注意点
| 注意 | 内容 |
|---|---|
| 判定基準 | 「JS 無効」だけでなく「JS 未サポート」も対象。ただし現代ブラウザでは未サポートは稀 |
| 同時表示はされない | script と noscript はどちらか一方のみ実行される |
| head 内の制約 | head 内では link / style / meta 以外を入れるとパースエラー |
| SEO クローラ | Googlebot は JS を実行するので noscript 内容は補助的な扱い |
CSS で「JS 無効」を表現する別の方法
html 要素に no-js クラスを初期付与しておき、JS が動いたら js に置き換えるパターンも一般的です。
<html class="no-js">
<head>
<script>
document.documentElement.classList.remove('no-js');
document.documentElement.classList.add('js');
</script>
</head>
<body>
<p class="show-no-js">JS が無効です</p>
<p class="show-js">JS が有効です</p>
</body>
</html>.show-js,
.show-no-js { display: none; }
.js .show-js { display: block; }
.no-js .show-no-js { display: block; }
FAQ
Q: 現代において noscript は必要?
A: JS 無効率は 1% 未満だが、セキュリティ上 JS を切っているユーザー (NoScript 拡張機能利用者など)、クローラ / 旧端末のために、最低限の情報を提供する価値はある。
Q: <noscript> 内に script を入れていい?
A: 仕様上は body 内ならフローコンテンツが入るので問題ないが、意味的に矛盾するので避ける。
Q: SPA のクローリング対策には十分?
A: 不十分。noscript は補助。SSR (Server Side Rendering) / SSG (Static Site Generation) / 動的レンダリングなどを併用すべき。
関連要素
script— JavaScript の埋め込みtemplate— JS で複製する HTML 雛形iframe— 別文書の埋め込み
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- figure要素
- template要素
- figcaption要素で図に説明を付ける
- canvas要素
- iframe要素
- script要素
- noscript要素
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- CSS background-origin 完全ガイド(border-box / padding-box / content-box / background-clip との違い) 2026-06-11 07:09:56
- CSS font-size 完全ガイド(px / em / rem / % / vw / clamp / キーワード / アクセシビリティ) 2026-06-11 07:09:56
- Windows start コマンド 完全ガイド(別ウィンドウ起動 / URL / フォルダ / /wait / /b / 優先度オプション) 2026-06-11 07:09:56
- HTML map要素 完全ガイド(イメージマップ / area要素 / usemap属性 / クリック可能領域の作り方) 2026-06-11 07:09:56
- break文 完全ガイド(Java / JS / for / while / switch / 多重ループ / ラベル / continue との違い) 2026-06-11 07:09:56
- SQL JOIN の ON と WHERE の違い 完全ガイド(内部結合 / 外部結合 / NULL の扱い / フィルタ順序) 2026-06-11 07:09:56
- CSS タイプセレクタ 完全ガイド(要素名で指定する基本セレクタ / 詳細度 / 全称・クラス・ID との違い) 2026-06-11 07:09:56
- CSS animation-play-state 完全ガイド(running / paused / hover で停止 / JS から再生制御) 2026-06-11 07:09:56
- UE5 ブループリント 現在日時取得 完全ガイド(Now / UtcNow / Today / DateTime / Timespan / フォーマット / タイムゾーン) 2026-06-11 07:09:56
- Java static メソッド 完全ガイド(インスタンス不要 / クラスメソッド / 使い分け / オーバーライド不可 / ユーティリティクラス) 2026-06-11 07:09:56
- ChatGPT 完全ガイド(仕組み / GPT-4o / GPT-5 / 料金プラン / API / 業務活用 / 注意点) 2026-06-11 07:09:56
- UE5 Event ActorBeginOverlap と OnComponentBeginOverlap の違い完全ガイド(アクター単位 / コンポーネント単位 / 引数の差 / 使い分け) 2026-06-11 07:09:56
- Blender モード切り替え 完全ガイド(オブジェクト / 編集 / スカルプト / ポーズ / Tab ショートカット / 用途別の使い分け) 2026-06-11 07:09:56
- HTML template要素 完全ガイド(クライアント側テンプレート / content / cloneNode / Web Components) 2026-06-11 07:09:56
- HTML link要素 完全ガイド(外部CSS読み込み / favicon / preload / rel属性 / a要素との違い) 2026-06-11 07:09:56
コメントを削除してもよろしいでしょうか?