[解決済み] 与えられたHTMLで動的にiframeを作成する
2022-04-21 04:53:19
質問
JavaScriptからiframeを作成し、そこに任意のHTMLを埋め込もうとしているのですが、このようなことは可能でしょうか?
var html = '<body>Foo</body>';
var iframe = document.createElement('iframe');
iframe.src = 'data:text/html;charset=utf-8,' + encodeURI(html);
期待する
iframe
は、有効なウィンドウとドキュメントを含んでいます。しかし、これはそうではありません。
> console.log(iframe.contentWindow)。
ヌル
ぜひお試しください。 http://jsfiddle.net/TrevorBurnham/9k9Pe/
私は何を見落としているのだろう?
解決方法は?
を設定します。
src
新しく作成された
iframe
は、その要素が文書に挿入されるまで、HTML パーサーを起動させません。その後、HTMLが更新されると、HTMLパーサーが起動し、期待どおりに属性を処理します。
var iframe = document.createElement('iframe');
var html = '<body>Foo</body>';
iframe.src = 'data:text/html;charset=utf-8,' + encodeURI(html);
document.body.appendChild(iframe);
console.log('iframe.contentWindow =', iframe.contentWindow);
また、この方法はいくつかのブラウザで互換性の問題があることに注意する必要があります。
関連
-
JavaScriptの関数この指摘の問題を説明
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] JavaScriptで複数行の文字列を作成する
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み] jQueryで要素にスクロールする
-
[解決済み] 動的に生成された要素にイベントバインディングを行うか?
-
[解決済み] jQuery/JavaScript:iframeのコンテンツにアクセスする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JSクロスドメインソリューション リアクト構成 リバースプロキシ
-
Vue Element-uiは、アイコンを追加するためのツリーコントロールノードを詳細に実装しています。
-
JavaScriptにおけるマクロタスクとミクロタスクの詳細
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み] Error : 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み】ExpressJS - throw er Unhandled errorイベント
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
[解決済み】(Google Map API) Geocodeは以下の理由で成功しませんでした。REQUEST_DENIED
-
Uncaught TypeError: null のプロパティ 'offsetHeight' を読み取れませんでした。
-
OSSアップロードエラーを解決する: net::ERR_SSL_PROTOCOL_ERROR