← Page-Type Lab に戻る
Liferay DXP · /web/guest/ · /o/ OSGi · portlet iframe 集約

E5 Liferay DXP / Portal — portlet iframe 集約と競合しうる

Liferay DXP の社内/公開ポータルを再現。検証ポイント: トップ ドキュメントへ si.js を 1 回置けば本体には起動するが、複数 portlet を iframe で集約する構成では各 iframe が別ドキュメントとなり、panel/widget が iframe 内へ届かず UI 競合・二重起動が起きうる。

Liferay 構成プローブ

Liferay 名前空間・/web/guest/ フレンドリ URL で Liferay ホストを判定。下の portlet は iframe 集約構成の擬似再現。

低コントラスト文(widget 起動時の比較対照)。

ポートレット集約(iframe 構成)

各 portlet が /o/ 配下の独立 iframe としてレンダリングされる構成。 トップに置いた si.js は iframe 内 DOM へは届かない(別ドキュメント)。

portlet: /o/announcements-web

portlet: /o/calendar-web

推奨実装(理論調査の結論)

  • si.js はグローバルテーマヘッダに 1 回だけ配置(portlet 単位に重複配置しない)。
  • iframe 集約 portlet には個別注入せず、トップで一括起動 → 二重起動を防ぐ。
  • iframe 内コンテンツの a11y 改善が必要なら別経路(iframe ごとの埋め込み)を検討。