jsp与iframe跨域访问的一个方法

前提条件:

假设有两个页面 one.html、two.html。

one.html 中有js方法 function one(){}; two.html 中有js方法 function two(){};

one.html 中有一个iframe(name=' oneframe ')嵌入了 two.html

①同域之间的访问:

假设one.html、two.html是同域的

one.html 调用 two.html 中的 two() 方法:

window.oneframe.two(); 

two.html 调用 one.html 中的 one() 方法:

parent.one();

②跨域之间的访问:

假设one.html、two.html是不同域的,例如www.a.com、www.b.com。

跨域访问不能用上述的方法调用了,因为浏览器的安全机制,禁用了跨域访问。

所以要实现我们的需求,需要换一种方式,其实仔细想一想,只要保证调用和被调用的页面在同域即可,

这时我们就需要用到一个中间页面来中转一下。

one.html 调用 two.html 中的 two() 方法:

先创建好一个和 two.html 同域的 tempTwo.html,页面中有初始化方法调用 two.html 中 two() 的方法。

parent.window.frameHidden.two(); 

在 one.html 中想调用 two() 时,只需在页面中创建一个嵌入了 tempTwo.html 的 iframe(name='frameHidden'),即可实现调用two()。

two.html 调用 one.html 中的 one() 方法:

先创建好一个和 one.html 同域的 tempOne.html,页面中有初始化方法调用 one.html 中 one () 的方法。

parent.parent.one(); 

在 two.html 中想调用 one() 时,只需在页面中创建一个嵌入了 tempOne.html 的 iframe(name='frameHidden'),即可实现调用one()。

转载于:https://my.oschina.net/MinghanSui/blog/911075

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值