ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
object 要素とは
<object> は外部リソース(PDF・SVG・画像・動画・別 HTML ページ・かつての Flash など)を、HTML ページ内に汎用的に埋め込むための要素です。data 属性に URL を指定するだけで、ブラウザがコンテンツタイプを判別して適切に表示します。
基本構文
<object data="sample.pdf" type="application/pdf" width="600" height="400">
<p>PDF を表示できませんでした。<a href="sample.pdf">こちらからダウンロード</a></p>
</object>
開始タグと閉じタグの間に書いた内容はフォールバックで、ブラウザが当該リソースを表示できなかったときに代替表示されます。
主な属性
| 属性 | 意味 |
|---|---|
data | 埋め込むリソースの URL(必須に近い) |
type | MIME タイプ(application/pdf, image/svg+xml 等) |
width / height | 表示サイズ(px 推奨) |
name | フォーム送信時の名前(限定的) |
form | 関連付ける form 要素の id |
usemap | イメージマップとの関連付け |
用途別の例
PDF を埋め込む
<object data="/files/manual.pdf" type="application/pdf" width="100%" height="600">
<p>PDF を表示できない場合は <a href="/files/manual.pdf">ダウンロード</a> してください。</p>
</object>
モバイル Safari など PDF 表示に弱い環境ではフォールバックが効きます。
SVG を埋め込む(スクリプト操作可)
<object id="logo" data="/img/logo.svg" type="image/svg+xml" width="200" height="60"></object>
<script>
document.getElementById('logo').addEventListener('load', () => {
const svgDoc = document.getElementById('logo').contentDocument;
svgDoc.querySelectorAll('path').forEach(p => p.style.fill = 'crimson');
});
</script>
<img> で SVG を読み込むと中の DOM にアクセスできませんが、<object> なら contentDocument 経由で JS から操作できます。
別 HTML ページを埋め込む(iframe 代替)
<object data="/widgets/weather.html" type="text/html" width="300" height="200">
天気ウィジェットを表示できませんでした。
</object>
動画(非推奨:通常は video 要素を使う)
<object data="/movies/intro.mp4" type="video/mp4" width="640" height="360"></object>
<!-- 推奨: -->
<video src="/movies/intro.mp4" controls width="640" height="360"></video>
フォールバック表示の仕組み
ブラウザが指定した type に対応していない、リソース取得に失敗した、プラグインがインストールされていない、といったケースで、<object> の中身(子要素)が代わりに表示されます。
<object data="legacy.swf" type="application/x-shockwave-flash">
<param name="movie" value="legacy.swf">
<p>このコンテンツは Flash で作成されています。代わりに <a href="legacy.mp4">MP4 版</a> をご覧ください。</p>
</object>
<iframe> との違い
| 項目 | <object> | <iframe> |
|---|---|---|
| 主な用途 | PDF・SVG・画像・動画など多様 | 別 HTML ページの埋め込み |
| MIME 自動判別 | あり(type で明示も可) | なし(HTML 前提) |
| フォールバック | あり(タグ内に書ける) | なし(古くは <noframes>) |
| sandbox 属性 | なし | あり(信頼境界を作る) |
| SEO・アクセシビリティ | title 属性で補える | title 属性が標準的 |
別ページを安全に隔離して埋め込みたいなら <iframe> + sandbox、PDF や SVG を載せたいなら <object> という棲み分けが分かりやすいです。
<embed> との違い
<embed> も類似要素ですが、フォールバックを書けない点が大きな違いです。最初から代替表示を意識するなら <object> が無難です。
セキュリティと CSP
- 外部から埋め込むリソースは 同一オリジン以外なら CORS / X-Frame-Options を意識
- CSP では
object-srcディレクティブで埋め込み可能な origin を制限できる - 埋め込み先がスクリプトを含む HTML の場合、object はサンドボックスがないため信頼できるソースのみに限定する
# 例: object-src は self とホワイトリストの CDN のみ許可
Content-Security-Policy: object-src 'self' https://cdn.example.com;
アクセシビリティ
- フォールバックに代替テキストやダウンロードリンクを必ず入れる
- SVG ロゴなら
<title>要素を SVG 内に入れて読み上げ可能にする - PDF 埋め込みは画面リーダーで読みにくいので、外部リンクとして提供することも検討する
よくあるトラブル
| 症状 | 原因と対処 |
|---|---|
| PDF が表示されず空白 | type 指定漏れ / モバイル Safari など未対応。フォールバックの a タグでダウンロード可 |
| contentDocument が null | 異なるオリジンの SVG / HTML を読んでいる。Same-Origin Policy |
| SVG の中身を JS で触れない | <img> ではなく <object> か inline SVG を使う |
| レイアウトが意図しない | width/height 未指定。可能なら px、レスポンシブは aspect-ratio を併用 |
関連
- オブジェクト — 親カテゴリ
- iframe 要素 — 別ページ埋め込み
- embed 要素 — シンプルな埋め込み
- video / audio 要素 — 動画・音声
- img 要素 — 画像表示
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- object要素
- param要素
人気ページ
- 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アノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?