随着业务的发展,自然地会有一些公共的业务被抽离成为公共组件供各个项目使用。但是由于各个项目用到的技术栈都有所不同,所以这个公共组件就不能方便地被引用了。为解决这个问题,我们把这个组件写成了单独的页面挂到一个域名下,其他项目采用iframe或者webview的方式去加载这个页面,从而实现功能的简单复用。
不过这过程中也产生了很多问题,比如通信跨域。以下我将会介绍我遇到的跨域问题以及一些解决方法。
最近在做一个需求,需要用iframe引入一个别人封装好的类似视频播放器的东西。iframe里面有一个全屏的按钮,点击后需要页面让iframe全屏,由于受到同源策略的限制,iframe无法告诉页面全屏。
document.domain
是 JavaScript 中的一个属性,用于设置或获取当前页面的域名。
它的作用是允许在同一个域名下的不同子域之间进行跨域通信。默认情况下,不同子域之间的 JavaScript 代码是无法直接访问彼此的属性和方法的,这是出于安全考虑的限制。但是,如果将它们的
document.domain
设置为相同的值,就可以解除这个限制。
使用方法很简单,只需要在 JavaScript 中设置
document.domain
属性为相同的值即可。例如: