クロスドメイン・モディフィケーション iframeページのコンテンツ詳細
2022-01-14 08:06:43
プリンシプル
マスターサイトはプロキシページを埋め込み、プロキシページにデータを渡し、プロキシページはマスターサイトのデータを元にターゲットページのDOMを操作する。プロキシページはターゲットページと同じドメインにあるので、プロキシページはターゲットページのドキュメントオブジェクトを取得し、操作することができます。
前提条件
proxy.htmlは、インラインiframeページと同じドメインで提供され、アクセス可能であることが必要です。
使用する
postMessageとURLパラメータを使用した2種類の呼び出しに対応しています。
ポストメッセージ
このメソッドでは、JSON.stringifyを使用してオブジェクトを文字列に変換する必要があります。
EventBus eventBus = new EventBus();
class EventBusBean{
String startDate;
String endDate;
EventBusBean({this.startDate, this.endDate});
}
URL パラメータ
このメソッドは、渡されたコンテンツをencodeURIComponentでエンコードする必要があります。
eventBus.fire(EventBusBean(startDate: _startDate, endDate: _endDate));
API
StreamSubscription _busSubscription ;
@override
void initState() {
super.initState();
_busSubscription = eventBus.on<EventBusBean>().listen((event) {
debugPrint('${event.startDate}=>${event.endDate}');
});
}
注意:セキュリティ上の理由から、includeScriptとimportScriptはデフォルトで無効になっています。これを有効にするには、proxy.htmlで変数ENABLED_JS_INCLUDEをtrueに設定してください。
リソース
https://github.com/stephenliu1944/cross-domain-iframe-proxy
以上、本記事の全内容をご紹介しましたが、皆様の学習のお役に立てれば幸いです。また、Script Houseをより一層応援していただければ幸いです。
関連
最新
-
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 実装 サイバーパンク風ボタン