博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实现iframe窗口高度自适应的又一个巧妙思路
阅读量:4493 次
发布时间:2019-06-08

本文共 3627 字,大约阅读时间需要 12 分钟。

domainA 中有一个页面index.html,通过iframe嵌套了domainB中的一个页面other.html

由于other.html页面在iframe中显示,而且其页面内容会动态的增加或减少,现在需要去掉iframe的滚动条
由于javascript同源策略的限制,无法进行跨域操作,使得问题比较棘手
参考了一下网上的做法,引入了一个代理页面,或者叫做中介 agent.html,属于domainA
然后,在domainB 中的other.html中,再使用iframe将agent.html进行嵌套
好了,现在情况是这样的:
index.html 使用iframe 嵌套 other.html
other.html 使用iframe 嵌套 agent.html
之所以要引入第3个页面agent.html,就是为了遵守“同源策略”的规则,完成不同domain下参数的传递!
我们最终的目的是要去掉滚动条,又要保证被嵌入的页面内容全部得到显示
1.取得other.html页面的实际高度height
2.将height设置到其嵌入的iframe的src属性上
3.在agent.html中截取出所属iframe的src属性中的height值
下面的例子中,使用了一个技巧,避免了使用setInterval()不断去设置iframe的高度
做法是在iframe的src上,附加一个时间戳,让浏览器每次都重新加载agent.html
进而让agent.hml中的js函数invokeMethodInTopWindow()得到执行
domainA 中的2个html
index.html 

#{extends 'main.html' /}#{set title:'Home' /}

窗口自适应---绕开同源策略的限制,同时又利用同源策略,去掉iframe的滚动条,动态调整窗口的高度,让其能够显示被嵌套页面的所有内容
View Code

 agent.html 

Insert title here 我是代理页面哦!
View Code

 domainB中的other.html

Insert title here
在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。 这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。 所谓同源是指,域名,协议,端口相同。 在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。 这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。 所谓同源是指,域名,协议,端口相同。 在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。 这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。 所谓同源是指,域名,协议,端口相同。 在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。 这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。 所谓同源是指,域名,协议,端口相同。 在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。 这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。 所谓同源是指,域名,协议,端口相同。 在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。 这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。 所谓同源是指,域名,协议,端口相同。 在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。 这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。 所谓同源是指,域名,协议,端口相同。 在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。 这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。 所谓同源是指,域名,协议,端口相同。 在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。 这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。 所谓同源是指,域名,协议,端口相同。
比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时, 他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。 比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时, 他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。 比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时, 他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。 比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时, 他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。 比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时, 他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。 比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时, 他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。 比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时, 他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。 比如一个黑客程序,他利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时, 他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。
View Code

 

转载于:https://www.cnblogs.com/ranzige/p/javacript_iframe.html

你可能感兴趣的文章
车联网SaaS平台多租户平台技术选型参考
查看>>
我是如何快速积累工作经验
查看>>
用信号量进程同步与互斥
查看>>
随笔1
查看>>
Codeforces Round #469 (Div. 2)
查看>>
JavaScript:Number 对象
查看>>
事务同步多线程
查看>>
怎么去掉联系人、通话记录、拨号列表界面中的电话号码中间的空格?
查看>>
node.js常见的一些错误信息
查看>>
MySQL启动出现The server quit without updating PID file错误解决办法
查看>>
什么是多租户
查看>>
jQuery的效果
查看>>
express node 框架介绍
查看>>
Python import模块
查看>>
基于Dx11写一个自己的游戏引擎--3
查看>>
Disconf源码分析之启动过程分析下(2)
查看>>
HTML <input> 标签
查看>>
adt-bundle-windows-x86-20131030
查看>>
Socket
查看>>
开发油猴脚本:给任意网页的选中文字涂色
查看>>