首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP + JavaScript 實現主頁面與 iframe 跨域雙向通訊

     編輯:PHP 綜合知識

架構設計

封裝兩大核心文件:

  • FrameMessage.js:客戶端介面,自動判斷同域/跨域,跨域時創建代理 iframe
  • FrameMessage.class.php:服務端接收跨域請求,返回執行 JS 代碼

核心功能

  1. 支援同域與跨域雙向通訊
  2. 參數支援字串、JSON、陣列等複雜型別
  3. 兼容 IE6/7 (需引入 json2.js)

調用示例

<!-- 主頁面調用 iframe 方法 -->
FrameMessage.exec('https://127.0.0.1/execB.php', 'myframe', 'fIframe', [
    'fdipzone',
    '{"gender":"male","age":"29"}',
    '["https://blog.csdn.net/fdipzone", "https://weibo.com/fdipzone"]'
]);

<!-- iframe 調用主頁面方法 -->
FrameMessage.exec('https://localhost/execA.php', '', 'fMain', [
    'programmer',
    '{"first":"PHP","second":"javascript"}',
    '["EEG","NMG"]'
]);

原理速覽

  • 同域:直接 parent.fn() 或 iframe.contentWindow.fn()
  • 跨域:利用 window.postMessage (現代) 或 document.domain + 代理 iframe (舊瀏覽器)
  • PHP 端根據 _fm_target、_fm_method、_fm_params 參數動態輸出 JS

主調iframe iframe調主頁

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved