← エラー辞典に戻る

HTML

iframe の sandbox で JS が動かない

iframeのsandbox属性でJSが動かない

こんな症状

iframeにsandbox属性をつけたら中のJavaScriptが動かなくなった。allow-scriptsを追加しよう。

まず試す

sandbox="allow-scripts" を追加する(必要なら allow-same-origin・allow-forms も)。

html
<iframe src="page.html" sandbox="allow-scripts allow-same-origin"></iframe>

これで直らなければ、下の「自分のケース」を確認。

🔍 自分のケースはどれ?

  • 中のJSが動かない
    → sandbox に allow-scripts を足す。
  • フォーム送信もできない
    → allow-forms を足す。
  • そもそも制限が不要
    → sandbox 属性自体を外す。

なぜ起きる?

sandbox属性を指定すると、デフォルトでスクリプト実行・フォーム送信・ポップアップなどすべてが制限されるよ。必要な権限を個別にallow-xxxで許可する必要がある。

✕ エラーが起きるコード
<iframe src="page.html" sandbox></iframe>
<!-- sandbox単体だとJS実行が禁止される -->
✓ 直したコード
<iframe src="page.html" sandbox="allow-scripts allow-same-origin"></iframe>
<!-- 必要な権限を明示的に許可 -->

✅ 直ったか確認

iframe 内のJSが期待どおり動けばOK。

🆘 まだ直らないときは

allow-scripts と allow-same-origin を同時に許可すると sandbox の効果が薄れる点に注意(信頼できる中身にのみ)。

Q&Aで質問する →

この解決法は役立ちましたか?

🔗 関連するエラー

📖 この問題を学べるレッスン

HTMLコース(基礎から)で根本から理解する →

✏️ 手を動かして練習

このテーマの図解ドリルで実際に書いて確認する →

📝 関連ブログ記事

📖 関連する用語

🚀 HTMLコースで基礎を学ぼう!

エラーの原因を根本から理解するには、基礎を体系的に学ぶのが近道です。完全無料・登録不要。

HTMLコースを始める →

❓ 関連するQ&A