【JavaScript】frame跨域访问元素
什么是跨frame访问元素呢?比如main.html中有如下代码:
<frameset cols="50%,*">
<frame src="frame1.html">
<frame src="frame2.html">
</frameset>
如果想在frame2.html的页面操作frame1.html中的元素,那么通过如下的js代码就可以完成:
parent.frames[0].document
其中parent表示访问main.html的文档。frames[0]表示访问main.html中的第一个frame对象,也就是frame1.html页面。也可以通过name来指定访问特定的页面,例如:
<frameset cols="50%,*">
<frame name="myframe1" src="frame1.html">
<frame name="myframe2" src="frame2.html">
</frameset>
frame2.html中的访问代码就可以改为:
parent.frames["myframe1"].document
到这里我们知道了frame之间如何访问元素,笔者这里只是列举了一种方法,有兴趣的读者可以自行googling。那么什么是跨域访问元素呢?
若我们把上面main.html中的一个frame指向其它的域名地址(比如:www.google.com),那么我们还能正常在myframe2中操作myframe1中的元素吗?
<frameset cols="50%,*">
<frame name="myframe1" src="www.google.com">
<frame name="myframe2" src="frame2.html">
</frameset>
答案是不行!在myframe2中操作myframe1中的元素,会得到如下的错误信息:frame Blocked a frame with origin "null" from accessing a cross-origin frame.
浏览器是禁止这种行为的。那么有没有什么方法可以实现这种操作呢?
答案是有的,解决方法有多种,笔者稍后会把链接粘贴在后面。这里笔者说一下,笔者可行方法(就是禁用浏览器的安全域检查):
笔者的Chrome是75.0.3770.142,环境是win7。
然后使用如下的命令启动chrome浏览器:
chrome.exe --disable-site-isolation-trials --disable-web-security --user-data-dir="your dir"
读者可以翻阅下面的链接,查看更详细的说明
1.Disable same origin policy in Chrome
2.blocked a frame of origin “null” from accessing a cross-origin frame - chrome
【JavaScript】frame跨域访问元素的更多相关文章
- JavaScript frame跨域获取元素、修改元素属性、调用其他frame页面方法
今天做了一个frameset的集合页面,其中有多个iframe页面,其中点击frame=leftMenu里的按钮元素后,需要修改frame=Header页面里的一个div元素属性. 1.主页面架构 & ...
- Javascript 跨域访问解决方案 总结
在客户端编程语言中,如javascript和ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义.同 源策略规定跨域之间的脚本是隔离的,一个域的脚本不能访问 ...
- javascript 跨域访问
JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.因为同源策略的限制,a.com 域名下的js无法操作b.com或是c.a.com域名下的对象. 下表给出了相对 http://si ...
- Web安全技术(3)-浏览器的跨域访问
http://www.blogjava.net/linli/archive/2015/04/22/424584.html 一.浏览器介绍 对于Web应用来说,浏览器是最重要的客户端. 目前浏览器五花八 ...
- 浅析JSONP-解决Ajax跨域访问问题
浅析JSONP-解决Ajax跨域访问问题 很久没有写随笔了,总是感觉没时间,其实时间就是...废话少说,前几天,工作上有一新需求,需要前端web页面异步调用后台的Webservice方法返回信息.实现 ...
- 允许CEF跨域访问iframe
默认情况下,如果嵌入本地Web页面,并在页面内部使用iframe来显示一个在线页面,加载的过程中会触发一个未捕获异常,虚函数CefV8ContextHandler::OnUncaughtExcepti ...
- CP="CAO PSA OUR" 用P3P header解决iframe跨域访问cookie
1.IE浏览器iframe跨域丢失Session问题 在开发中,我们经常会遇到使用Frame来工作,而且有时是为了跟其他网站集成,应用到多域的情况下,而Iframe是不能保存Session的因此,网上 ...
- cors解决Web跨域访问问题
首先了解一下什么是跨域以及解决的几种常见方式. 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器施加的安全限制. 所谓同源是指,域名,协议,端口均相同. 举例: 相对于 ...
- 从前端和后端两个角度分析jsonp跨域访问(完整实例)
一.什么是跨域访问 举个栗子:在A网站中,我们希望使用Ajax来获得B网站中的特定内容.如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题.你可以理解为两个域名之间不能跨过域名来发送请求或者请 ...
随机推荐
- vagrant 无法挂载共享目录
Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem " ...
- MFC For循环中实时更新显示Edit内容
在for(){}循环中如果有处理函数,然后需要显示的时候,简单的UpdateData(false);是不行的: for (int i=0;i<10000;i++) { m_nT1.Format( ...
- 提高用git下载代码时的成功率
在用git clone下载一些比较大的仓库时,经常会遇到由于仓库体积过大,网络也不稳定,导致下了半截就中断了,可以参考如下的下载方法. 先用创建一个空目录,然后用git init初始化,然后用git ...
- ERROR 1129 (HY000): Host '192.168.7.210' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
一.问题现象 mysql远程连接报错 ERROR (HY000): Host '192.168.7.210' is blocked because of many connection errors; ...
- kuangbin专题专题四 Currency Exchange POJ - 1860
题目链接:https://vjudge.net/problem/POJ-1860 大致题意:有不同的货币,有很多货币交换点,每个货币交换点只能两种货币相互交换,有佣金C,汇率R. 每次交换算一次操作, ...
- yum下载Zabbix4.0失败的解决方法
根据官网说明配置的yum源,今天用yum下载Zabbix时莫名的报错,经过几番折腾,找到了解决方法. 一.报错如下: 二. 解决方法: [root@VM_0_6_centos ~]# cat /etc ...
- QTAction Editor的简单使用(简洁明了)
1. 打开UI界面,选择如下图的模式 2. 添加资源名称并选择相应的资源,点击OK 3. 相应的资源就建立好了 4. 添加好的资源可以直接拖到MainWindow中
- python在windows(双版本)及linux(源码编译)环境下安装
python下载 下载地址:https://www.python.org/downloads/ 可以下载需要的版本,这里选择2.7.12和3.6.2 下面第一个是linux版本,第二个是windows ...
- vim编辑时遇到E325: ATTENTION Found a swap file by the name "./.backu.sh.swp"错误代码的解决办法
vim编辑时遇到E325: ATTENTION Found a swap file by the name "./.backu.sh.swp"错误代码的解决办法 重点:解决方法是: ...
- 没有内置小鹤双拼的rime输入法就是差劲
没有内置小鹤双拼的rime输入法就是差劲,还特立独行,搞什么繁体~ 没有内置小鹤双拼的rime输入法就是差劲,还特立独行,搞什么繁体~ 没有内置小鹤双拼的rime输入法就是差劲,还特立独行,搞什么繁体 ...