Skip to content

使用 PostMessage 控制 iframe

由於同源政策限制,外接網站無法直接存取或控制 iframe 的內容,因此我們提供 iframe 嵌入服務,讓外接網站透過 PostMessage 與 iframe 進行安全的跨來源通訊,實現導航操作(返回、前進)、狀態同步或事件通知等功能。

<iframe id="gamePage"></iframe>
const gameUrl = getGameLoginUrl();
const gameOrigin = new Url(gameUrl).origin
const iframe = document.getElementById('gamePage');
// 回到上一頁
function goBack() {
const command = { type: 'navigation', action: 'goBack' }
// 使用與gameUrl相同的gameOrigin來確保安全傳輸資料
iframe.contentWindow.postMessage(command, gameOrigin);
}
function goForward() {
const command = { type: 'navigation', action: 'goForward' }
// 使用與gameUrl相同的gameOrigin來確保安全傳輸資料
iframe.contentWindow.postMessage(command, gameIframeOrigin);
}
  • goBack: 返回上一頁,發送命令 { type: 'navigation', action: 'goBack' }
  • goForward: 前進到下一頁,發送命令 { type: 'navigation', action: 'goForward' }

指定目標來源: 避免使用 '*' 作為 targetOrigin,請指定我們網站的確切 URL

如果需要其他功能可以提出請求