main 與 iframe 相互通訊類
之前寫過一篇《iframe與主框架跨域相互訪問方法》,介紹了main與iframe相互通訊的原理,不了解原理的可以先看看。
今天把main與iframe相互通訊的方法封裝成類,主要有兩個文件,
JS:FrameMessage.js 實現調用方法的接口,如跨域則創建臨時iframe,調用同域執行者。
PHP:FrameMessage.class.php 實現接收到跨域請求時,根據參數返回執行方法的JS code。
功能如下:
1.支持同域與跨域通訊
2.傳遞的方法參數支持字符串,JSON,數組等。
FrameMessage.exec('http://127.0.0.1/execB.php', 'myframe', 'fIframe', ['fdipzone', '{"gender":"male","age":"29"}', '["http://blog.csdn.net/fdipzone", "http://weibo.com/fdipzone"]']);
FrameMessage.exec('http://localhost/execA.php', '', 'fMain', ['programmer', '{"first":"PHP","second":"javascript"}', '["EEG","NMG"]']);
因部分浏覽器不支持JSON.stringify 與JSON.parse 方法(如IE6/7),為了兼容,需要包含json2.js,下載地址:https://github.com/douglascrockford/JSON-js