iframe 中的问题

如何在vue中使用iframe(操作节点)+不操作节点只是用VUE 需求:点击播放区域后在点击监控即可呈现播放区域 HTML <!-- 四屏 --> <div v-if="video == 4" class="content"> <div class="contvidef" :style="{ height: windowHeight / 2.06 + 'px', width: parseInt(windowWidth / 2.05) + 'p 阅读详情

记录下一个后端人员开发前端 是遇到的iframe中的问题

转载博客:https://www.cnblogs.com/Capricorn-HCL/articles/4216302.html

jquery操作iframe:https://www.jb51.net/article/123314.htm

iframe子页面与父页面元素的访问以及js变量的访问

1、子页面访问父页面元素 

 

parent.document.getElementById('id')和document相关的方法都可以这样用 

 

2、父页面访问子页面元素 

 

document.getElementById('iframeId').contentDocument.getElementsByTagName('table'); contentDocument后可以使用document相关方法 
var tet = document.getElementById('iframeId').contentWindow.document.getElementById("text_inputId"); 
alert(tet.value);

 

3、子页面访问父页面js变量(注:父页面的js变量需为全局变量) 

 

子页面var variable = parent.variableParent   (variableParent为父页面定义的变量) 

 

4、父页面访问子页面js变量 

这部分目前的解决方案是在父页面设置全局变量,在子页面进行修改后将子页面的变量赋值给父页面 

5、子页面访问父页面js方法

window.parent.paramMethod();

6、父页面访问子页面js方法

document.getElementById('iframeId').contentWindow.iframeMethod(param);

 

iframe里面的页面调用父窗口,左右窗口js函数的方法 
实现iframe内部页面直接调用该iframe所属父窗口自定义函数的方法。 
比如有A窗口,A内有个IFRAME B,B里面的装载的是C页面,这时C要直接调用A里面的一个自定义函数AFUN();
那么只要在C页面中写如下JS函数就可以了:
window.parent.AFUN();
如果AFUN()有参数也可以直接传递合适的参数进去。 
例如:
修改父窗口控件属性
window.parent.document.getElementById('frmright').src=window.parent.document.getElementById('frmrightsrc').value;
调用父窗口函数
window.parent.POPUP('bigFram');

父窗口调用iframe子窗口方法 
<iframe name="myFrame" src="child.html"></iframe> 
myFrame.window.functionName(); 
iframe子窗口调用父窗口方法 
parent.functionName();


////////////////////////////////////
用js互相调用iframe页面内的js函数 
一个html页面,分成左右两块,左边为导航栏,右边为需要显示的内容,代码如下:
左栏的代码为:
<IFRAME frameBorder=0 id=frmTitleLeft name=framLeft src="left.html" style="HEIGHT: 100%; width:180px;">
连接到left.html 
比如右栏中有一个函数right(),我要在左栏的链接中调用right()函数,该如何实现呢 
1,首先leftframe是内嵌在容器页index.html中的,因此需要先返回到index这一级别,并取得rightframe对象
    var frames=window.parent.window.document.getElementById("frameid"); 
2,要能执行其页面中的函数,必须要获得window对象,这里有一个重要的对象contentWindow,获得这个对象,即可执行其中的函数了,如
    frames.contentWindow.right(); 
以上代码兼容IE6,Firefox3,chrome2.0,均成功通过测试,IE7没试过,不过应该没问题。 
3.例如: 
window.parent.document.getElementById('leftFrame').contentWindow.JSMenu('MenuUl'+Sid);
window.parent.frames["leftFrame"].JSMenu('MenuUl'+Sid);

////////////////////////////////////////
还有下面一种,没测试过

并不是象通常那样iframeName.test();——test()为iframe里的方法。因为要写一个通用一点的东西,所以是从一个配置文件中动态获取到iframe的id。然后调用里面的方法。可是不成功。相烦帮忙看一看。代码如下:   
<iframe   id="iframe1"></iframe>   
    
var   cs   =   document.all;   
            for(var   i   =   0;   i   <   cs.length;   i++)   {   
                    if(cs.tagName.toUpperCase()   ==   "IFRAME")   {   
                            if(cs.id   ==   "iframe1")   {   
                                    alert(frmDealData);   
                                    alert(cs);   
                                    document.frames.iframe1.setScreenletStatus(iframeLayoutLvl);   
                                    document.frames.cs.setScreenletStatus(iframeLayoutLvl);   
                            }   
                    }   
            }   
第一句调用是成功的。   
可第二句就不成功。   
如果在只能取得cs对象的情况下,该怎么调用iframe里的方法?谢谢

------------------------------------ 
不要用id,用name   
window.frames[cs].fun()

 

多窗口操作

由于网页可以使用iframe元素,嵌入其他网页,因此一个网页之中会形成多个窗口。如果子窗口之中又嵌入别的网页,就会形成多级窗口。

窗口的引用

各个窗口之中的脚本,可以引用其他窗口。浏览器提供了一些特殊变量,用来返回其他窗口。

  • top:顶层窗口,即最上层的那个窗口
  • parent:父窗口
  • self:当前窗口,即自身

下面代码可以判断,当前窗口是否为顶层窗口。

if (window.top === window.self) {
  // 当前窗口是顶层窗口
} else {
  // 当前窗口是子窗口
}

下面的代码让父窗口的访问历史后退一次。

window.parent.history.back();

与这些变量对应,浏览器还提供一些特殊的窗口名,供window.open()方法、<a>标签、<form>标签等引用。

  • _top:顶层窗口
  • _parent:父窗口
  • _blank:新窗口

下面代码就表示在顶层窗口打开链接。

<a href="somepage.html" target="_top">Link</a>

iframe 元素

对于iframe嵌入的窗口,document.getElementById方法可以拿到该窗口的 DOM 节点,然后使用contentWindow属性获得iframe节点包含的window对象。

var frame = document.getElementById('theFrame');
var frameWindow = frame.contentWindow;

上面代码中,frame.contentWindow可以拿到子窗口的window对象。然后,在满足同源限制的情况下,可以读取子窗口内部的属性。

// 获取子窗口的标题
frameWindow.title

<iframe>元素的contentDocument属性,可以拿到子窗口的document对象。

var frame = document.getElementById('theFrame');
var frameDoc = frame.contentDocument;

// 等同于
var frameDoc = frame.contentWindow.document;

<iframe>元素遵守同源政策,只有当父窗口与子窗口在同一个域时,两者之间才可以用脚本通信,否则只有使用window.postMessage方法。

<iframe>窗口内部,使用window.parent引用父窗口。如果当前页面没有父窗口,则window.parent属性返回自身。因此,可以通过window.parent是否等于window.self,判断当前窗口是否为iframe窗口。

if (window.parent !== window.self) {
  // 当前窗口是子窗口
}

<iframe>窗口的window对象,有一个frameElement属性,返回<iframe>在父窗口中的 DOM 节点。对于非嵌入的窗口,该属性等于null。

var f1Element = document.getElementById('f1');
var f1Window = f1Element.contentWindow;

f1Window.frameElement === f1Element // true
window.frameElement === null // true

window.frames 属性

window.frames属性返回一个类似数组的对象,成员是所有子窗口的window对象。可以使用这个属性,实现窗口之间的互相引用。比如,frames[0]返回第一个子窗口,frames[1].frames[2]返回第二个子窗口内部的第三个子窗口,parent.frames[1]返回父窗口的第二个子窗口。

注意,window.frames每个成员的值,是框架内的窗口(即框架的window对象),而不是iframe标签在父窗口的 DOM 节点。如果要获取每个框架内部的 DOM 树,需要使用window.frames[0].document的写法。

另外,如果<iframe>元素设置了name或id属性,那么属性值会自动成为全局变量,并且可以通过window.frames属性引用,返回子窗口的window对象。

// HTML 代码为 <iframe id="myFrame">
window.myFrame // [HTMLIFrameElement]
frames.myframe === myFrame // true

另外,name属性的值会自动成为子窗口的名称,可以用在window.open方法的第二个参数,或者<a>和<frame>标签的target属性。

使用iframe嵌入页面时,src改变但是页面未刷新 可能有缓存,页面没有重新加载,没有及时刷新。给iframe加key(亲测有效)值已经变化,仅仅是页面未刷新。希望记录的问题能够帮助到你!嵌入显示, 点击修改该。的内容,即页面未刷新。 阅读详情

相关推荐

多层嵌套Iframe的自适应问题解决

/** * 多层嵌套Iframe的自适应问题解决 * * @author: Cheng * @Email : bohemia1985@163.com */一.为什么需要Iframe? 由于Iframe相当于独立的窗体,因此可以动态改变Iframe中的稳当的内容,而没有必要改变其他的元素。正是因为这个特点,所以Iframe在某方面就显示了它的优越性。 对于我的情况,主要是为了减少重复载入网页中已

bohemia的专栏 9539

关于iframe的内外访问的问题

这个时候在HTML中使用这个window.parent就没办法了(会返回undefined)。②在#document内部无法选择到iframe外部(因为#document隔开了)。此时这个选择器选中的就是某个#document内部的html.①在iframe外部无法选择到#document内部的元素;

廖小生的博客 1048

AB SCIEX质谱数据分析实战:从PeakView入门到精通

质谱分析是现代生命科学和药物研发中不可或缺的核心技术,它通过测量离子的质荷比来鉴定和定量化合物。其基本原理是将样品离子化后,在电场和磁场中按质荷比分离,最终形成质谱图。这项技术的核心价值在于能够从复杂混合物中高灵敏度、高特异性地获取化合物的定性和定量信息,广泛应用于代谢组学、蛋白质组学、环境监测和药物分析等领域。在实际工作中,高效的数据处理平台至关重要。以AB SCIEX质谱仪生成的.wiff文件为例,其原始数据需要专业软件进行解析。PeakView软件正是这样一个综合平台,它集成了高级数据处理、谱图解析和

weixin_29053577的博客 306

iframe的document操作

导语: 在我写网页代填插件的时候,有遇到拿不到input元素的时候,这时候我去看元素布局,发现有些网站登录那一块是用iframe标签写的,这时候我需要取到的那就是iframe标签下input元素 1.获取页面上的所有iframe标签遍历获取每一个iframe 获取所有的iframe标签 let iframes = document.getElementsByTagName...

baidu_26872161的博客 710

Nginx国密HTTPS实战:SM2双证书部署与TongSuo编译指南

HTTPS作为保障网络通信安全的基石,其核心在于SSL/TLS协议与公钥基础设施(PKI)。它通过非对称加密实现身份认证与密钥交换,再结合对称加密确保数据传输的机密性与完整性。在金融、政务等对自主可控有严格要求的领域,采用符合国家密码管理局标准的国密算法(SM2/SM3/SM4)替代国际通用算法(如RSA/SHA-256/AES),已成为满足安全合规要求的关键技术路径。国密SSL不仅是一套算法替换,更涉及从底层密码库到上层应用服务的完整技术栈改造。其核心价值在于实现密码技术的自主可控,提升特定场景下的安全防

weixin_29323365的博客 496

静态时序分析(Static Timing Analysis, STA):简介及内容导航

静态时序分析(简称STA)是用来验证数字设计时序的技术之一,另外一种验证时序的方法是时序仿真,时序仿真可以同时验证功能和时序。“时序分析”这个术语就是用来指代“静态时序分析“或”时序仿真“这两种方法之一,简单来说,时序分析的目的就是为了解决设计中的各种时序问题。STA被称为静态的原因是其对于设计的分析是静态地执行的,并不依赖于施加在输入端口上的激励。相比之下,时序仿真则可以被视作动态地执行对设计的分析,具体过程描述如下:施加一组激励,观察在这组激励下电路行为是否符合要求,然后换一组激。

Starry__的博客 1986

项目中遇到的问题1:iframe嵌套跨域内容,src变更但内容未刷新问题

**问题描述:**在A页面中通过iframe嵌套了B页面,B页面的内容是通过A页面的query里面的参数请求到的 使用watch监听了route变化,当query中传入的参数变更后就需要让iframe的src和内容同步变更,但在项目过程中,iframe随着变更了,但是iframe中的内容却没有同步更新 在网上查询到了下面的解决方法: 方法1:document.getElementById(ifr...

小羊的博客 2432

深入解析STM32F40x CAN控制器的配置与优化

本文深入解析STM32F40x CAN控制器的配置与优化,涵盖基础工作模式、波特率计算、筛选器配置及中断管理等关键技术。通过实战案例和代码示例,帮助开发者高效配置CAN通信,提升工业控制系统的稳定性和性能。

weixin_26834815的博客 219

iframe页面嵌套问题

iframe页面嵌套问题 开发工具与关键技术:VisualStudio C# 作者:落灵 撰写时间:2019/6/8 一、 iframe的框架根据内容自适应高度 iframe是在项目设计中经常用到的框架标签。而它的作用就是把页面嵌套在自身形成的框架体中,从而实现在一个固定的地方可以切换多个页面,并且其他内容不变。在使用iframe这个框架标签时新手往往是直接固定iframe的宽高。那么当文本内容...

weixin_44551909的博客 2万+

GoldenDB 兼容模式冲突场景解析:MySQL 连接模式 vs Oracle 语法兼容

GoldenDB 兼容模式冲突场景解析:MySQL 连接模式 vs Oracle 语法兼容

weixin_45207751的博客 2250

[P4V]Perforce(P4V)使用教程

1.前言 Perforce SCM System是一款构建于可伸缩客户/服务器结构之上的软件配置管理工具。仅仅应用TCP/IP,开发人员就能够通过多种Perforce客户端(几种平台的GUI、WEB、或命令行)访问Perforce服务器。Perforce能够被快速和容易地部署,即使对大型或分布式的站点,也只要求最小限度的管理。Perforce可以使用在50多个操作系统中,它包括版...

元直的博客 2万+

iframe中碰到的问题及解决方法

前言 今天在做验证码识别项目的时候,一开始就碰到了一个问题,出了各种各样的报错,研究查询了很久终于解决了,在这里归纳分享一下。 碰到的问题及解决方法 在我定位验证码滑块元素的时候一直显示我定位语句错误,多次调试定位方法及路径未果,后来发现这里验证码的部分是用iframe写入的,也就是子Frame,相当于页面的子页面,它的结构与外部网页完全一致,selenium在打开网页后,默认在父级Frame里面操作,所以获取不到子Frame的节点。 这时需要用...

Yy_Rose的博客 4981

谁还攥着旧的类加载器:Metaspace OOM 的元数据记账、类卸载条件与泄漏定位解析

MetaSpace区是JVM内存管理中的关键部分,负责存储类元数据。随着Java 8的推出,MetaSpace取代了PermGen区,但其灵活性也带来了新的挑战,尤其是在动态类加载和频繁类更新的场景下,容易导致MetaSpace内存溢出(OOM)问题。本文探讨了MetaSpace OOM的根本原因,包括类加载器泄漏、内存管理不当和GC效率低下等,并提供了一系列调优策略和解决方案,帮助开发者有效排查和防止此类问题的发生,确保应用程序的稳定性和高可用性。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 15万+

vue嵌入iframe的问题

问题来源:客户要求展示一些文档,并且文档是现成的,打包好的html,直接嵌入到页面就行。但是中间还是遇到一些问题,记录一下。 vue中嵌入iframe <iframe src="静态文件路径" frameborder="0" scrolling="auto"></iframe> 复制代码项目用的是vueCli3.0脚手架搭建的,这里我们需要引入的静态HTML就放在pub...

weixin_34342905的博客 1346

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ie6下的iframe,问题多多

今天在ie6下显示velocity页面中的iframe,发现除了iframe的外框以外,src中请求的url完全没有读取成功,结果是个空的iframe。 总结网上一共有以下几种解决办法:  1,  name='ifrm_select_jhs_x' src="+url+"

GQ2010的专栏 1170

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

vue 嵌入iframe的一些问题

vue 嵌入iframe的一些问题

weixin_43829905的博客 1156

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

再谈Iframe的问题

再谈Iframe的问题

哲 946

Flex嵌套Iframe,点击除Iframe的其他地方后,Iframe内容消失的问题。

今天遇到一个很让人闹心的问题,就是我的Flex中为了嵌套一个jsp,所以在flex中嵌套一个包含JSP页面的Iframe。问题出现了,当我点击除了Iframe的其他地方的时候,Iframe中的内容全部消失了。刚开始我还困惑到底是怎么回事,后来才发现这个问题是完全可以解决的。解决的方法如下:           在index.template.html中更改一个属性,index.template.

kenchow126的专栏 3168

vue嵌套iframe问题

最近在项目中遇到一个需求需要在一个项目中直接引用另一个项目,尝试各种情况无果后选择了iframe。现将调用过程中遇到的问题做一个分享。 router.go()的使用   此情况主要适用于更改iframe中src值以后导致的路由跳转混乱。   详细描述:当多次更改iframe->src属性后,调用router.go(-1),不能实现路由后退上一级,而是将iframe当作一个窗口文档,调用了该窗口文档的window.history.go(-1),并未更改父级项目的路由后退功能。   解决办法:

会点php的前端小渣渣 2100

iframe问题

这种机制通常是在服务器端实现的,可以让动态语言的程序员方便地重用代码和模块,但它并不具有隔离性,包含的代码和资源与它们所属的 HTML 文件共享同一个渲染上下文。如果 iframe 中的内容没有完全加载完成,或者 iframe 中的资源(例如 JavaScript、CSS、图片等)正在下载或执行,那么 iframe 可能会阻塞页面的加载。相对于一般的 DOM 元素,使用 iframe 创建的元素的渲染速度可能会更慢,因为它需要创建和加载一个新的文档,并在浏览器中进行独立的渲染和布局。

m0_61696809的博客 1974

使用iframe遇到的问题

1:在iframe中使用layer弹框引发的一些问题 弹框后,出现子窗口高度不够,导致显示内容不全 使用iframe 代码如下: &amp;lt;div class=&quot;layui-tab-content&quot; style=&quot;min-height: 150px; padding: 0 0 0 0;&quot;&amp;gt; &amp;lt;div class=&quot;layui-tab-item layui

qq_24184997的博客 1457

【前端学习】iframe标签以及postMessage解决iframe中的跨域问题

iframe>是html的一个行内块级元素,像行内元素一样会在一行中水平排列,又可以像块元素一样设置宽高。<iframe>用于在一个网页中嵌入另一个网页<iframe>默认有宽高(根据浏览器样式设定,通常:width300px height150px),存在边界src:指定内联网页地址;:设置为0可以清除iframe的边界(已过时)可通过样式修改:width: 宽height:高scrolling:是否可滚动—yesnoauto(根据页面内容)

weixin_45626095的博客 3265

iframe自适应问题

/如果用户的浏览器不支持iframe是否将iframe隐藏 yes 表示隐藏,no表示不隐藏for (i = 0;i++) {//自动调整iframe高度//根据设定的参数来处理不支持iframe的浏览器的显示问题} else {

2401_86402111的博客 797
上一篇: Http Client 简单demo 使用
下一篇: 有界、无界队列和java线程池
xiaoduup
博客等级 码龄9年 23粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值