
PHP与JS实现iframe跨域及同域通讯的类库
111KB |
更新于2024-08-28
| 53 浏览量 | 举报
收藏
"这篇文章主要介绍了一个名为FrameMessage的JavaScript类,用于实现PHP主页面(main)与IFrame之间的通信,支持同域和跨域。它包括两个核心文件:FrameMessage.js和FrameMessage.class.php。FrameMessage.js提供调用接口,处理跨域场景,而FrameMessage.class.php负责处理跨域请求并返回执行所需的方法的JavaScript代码。该通信类支持传递各种类型的参数,如字符串、JSON对象和数组。由于旧版浏览器可能不支持JSON.stringify和JSON.parse,所以需要引入json2.js来确保兼容性。"
在PHP主页面(main)与IFrame之间进行通信通常涉及到安全性、跨域限制和数据交换等问题。FrameMessage类解决了这些问题,提供了一种有效的方法来实现通信。`FrameMessage.exec()`是类中的关键方法,接收四个参数:执行的页面URL(用于跨域)、要调用方法的IFrame名称、方法名以及一个包含方法参数的数组。
例如,以下代码展示了如何使用FrameMessage类在主页面调用IFrame中的方法:
```javascript
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']]);
```
这段代码将向URL为'http://127.0.0.1/execB.php'的页面发送请求,并在名为'myframe'的IFrame中执行名为'fIframe'的方法,传递的参数包括字符串和数组。
另一方面,IFrame也可以调用主页面的方法,通过类似的方式进行通信。这个过程依赖于JavaScript的事件监听和发布机制,以及DOM操作来实现跨域消息传递。当在IFrame中执行方法时,FrameMessage.js会创建一个临时的iframe,用于同域通信或者处理跨域的预加载请求。
`FrameMessage.class.php`在服务器端接收这些请求,解析参数,并生成一段JavaScript代码,这段代码将被嵌入到调用页面中,以执行实际的方法。这种方法允许在安全的环境下执行跨域操作,因为所有的通信都在服务器端进行了验证和处理。
为了确保所有浏览器的兼容性,特别是对那些不支持JSON.stringify和JSON.parse的老版本浏览器(如IE6/7),开发者需要引入json2.js库。这个库由Douglas Crockford编写,提供了JSON对象的polyfill,使得老版本浏览器也能处理JSON数据。
FrameMessage类提供了一个强大的工具,使得PHP主页面与IFrame之间的通信变得更加简单和灵活,同时考虑到了跨域安全和兼容性问题。无论是同域还是跨域,它都能够有效地传递复杂的数据结构,如字符串、JSON对象和数组,从而促进了页面组件间的高效协作。
相关推荐






weixin_38717171
- 粉丝: 1
最新资源
- CAJViewer6.0精简版:多格式文件阅读器
- 绿色软件TreeSize Professional:磁盘空间分析专家
- 编程中的浪漫:用Visual Basic制作趣味按键小游戏
- 涵盖5个实例的ASP.NET数据库课程设计文件
- 火车票与汽车票购买推理机程序设计
- 掌握Dreamweaver8:150个网页设计经典实例精讲
- Win32实现系统内存信息获取工具
- SQLyog Enterprise v5.02 汉化版发布,附带注册教程
- C++实现员工工资统计系统的开发
- 网页弹出窗口选择列表的jQuery实现示例
- 实现图片轮播广告轮换的JS技巧
- Greta 微软正则表达式库深度解析
- JavaPlayer:支持中文歌词的音乐播放器
- WAS压力测试工具的使用与脚本编辑指南
- C#实现最小二乘法数据拟合与散点图显示教程
- NeHe OpenGL入门教程及源码解析
- madfish-webtoolkit-1.1源码深度剖析与CMake学习
- 设计按优先数调度算法的处理器调度程序
- C语言程序设计电子版:全面解析与实践指南
- 星际彩球:C语言实现双球360°旋转游戏
- 酒店管理系统开发:JSP与SQL的应用
- BMP图像处理入门:灰度化与二值化技巧
- 利用swfupload实现文件的批量上传技巧
- C语言实现的MPEG通用解析器