javascript跨文档调用技术.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
JavaScript跨文档调用技术,简称XDM(Cross-Domain Messaging),是一种允许不同源的Web页面或脚本之间安全地交换数据的技术。这项技术主要应用于解决同源策略的限制,同源策略是浏览器的一个安全特性,它禁止了一个源的文档或脚本访问另一个源的资源。在JavaScript中,"源"由协议、主机名和端口组成,如果这三个元素不完全相同,就被视为不同的源。 在标题提到的示例中,开发者利用IFrame来实现跨文档调用。IFrame是一个嵌入在主页面中的小型浏览器窗口,可以加载来自不同源的HTML文档。通过创建一个隐藏的IFrame,并在IFrame的文档中注入脚本,可以将IFrame中的Array对象暴露给父页面,从而实现跨文档的数据交互。 创建一个IFrame元素并添加到页面中,然后利用`frames`对象访问IFrame的窗口,接着在IFrame的文档中写入脚本,将IFrame的Array对象赋值给父页面的`Array2`变量。这样,父页面就能使用IFrame中的Array实例,而不会受到本地Array对象的影响。 然而,这个技术存在一些问题。在Firefox和Safari中,当尝试将沙箱文档(IFrame文档)的Array实例转化为本地文档的Array实例时,会遇到类型转换,导致扩展的功能失效。例如,当在沙箱数组上使用`slice()`方法创建一个新的数组,然后检查新数组是否为Array的实例时,Safari和Firefox会返回错误的结果。同样,对于返回数组的方法,如`push()`,也会受到这种影响。 DE大神在其Base2类库中并没有采用这种技术,可能是因为它存在浏览器兼容性问题,或者有更好的替代方案。在实践中,跨文档调用技术不仅仅局限于数组对象的子类化,还可以用于实现跨域通信,如WebSocket、JSONP、CORS等。 在HTML5中,`postMessage`和`message`事件被引入,提供了一种更标准、更安全的跨窗口通信方式。`postMessage`允许向任何窗口发送消息,接收窗口通过监听`message`事件来处理这些消息。这种方式避免了对Array对象的子类化以及由此产生的问题,同时支持更多的浏览器。 此外,跨文档调用技术在富文本编辑器、实时通讯、单页应用(SPA)中的模块化、以及跨域资源共享(CORS)等方面都有广泛的应用。尽管存在浏览器差异和兼容性挑战,但随着Web技术的不断发展,这些问题逐渐得到改善,跨文档调用技术仍然是一项重要的Web开发技能。
剩余11页未读,继续阅读
- 粉丝: 62
- 资源: 7万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于python实现的大麦抢票脚本
- 基于深度学习的声学回声消除基线代码Python实现+文档说明(高分项目)
- 俄罗斯方块c语言课程设计(PDF文档)
- 技术资料分享Zigbee协议栈OSAL层API函数(译)非常好的技术资料.zip
- vgg模型-基于深度学习AI算法对家用电器识别-不含数据集图片-含逐行注释和说明文档.zip
- 树莓派可用的国内源分享(项目汇总)
- vgg模型-基于卷积神经网络识别陶瓷制品表面缺陷-不含数据集图片-含逐行注释和说明文档.zip
- Centos7 el7.x86-64官方离线安装包.bind-utils.zip
- vgg模型-CNN图像分类识别光线强度-不含数据集图片-含逐行注释和说明文档.zip
- 基于 Python实现多模态语音和文本结合的情感识别(大模型finetune)高分项目代码