动态创建iframe—IE与其他浏览器的不同

华为OD机考双机位C卷 - 评委评分 (Java & Python& JS & C/C++ & GO ) 华为OD机考双机位C卷 - 评委评分 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。 阅读详情

 

 很多情况下,我们都要动态创建元素,比如动态创建iframe,iframe很特殊,它即可以看作是页面元素,也可以看作是窗体对象。所以,所对应的取法也不同。比如当作是页面元素的时候,这样取:document.getElementById('iframe_id'),当作是窗体对象的时候取法就多了,主要有三种:1、window.frames[index]    2、window.frames['iframe_id']    3、window.frames.iframe_id  

这三种取法在IE里都一样,都能正确得到iframe对象,Opera也能正常取出,但惟独FireFox却不好使,不管你用哪种取法总是取不出!开始自己也一直想不通错在了那里,想可能是FireFox浏览器本身的一个Bug,但通过这次项目终于真相大白!

    项目要实现这样一个功能,动态创建一个form表单来跨域提交数据,并将form表单的target设置成动态创建的iframe(页面不会跳转到提交的页面)。即:MyForm.target="iframe_name"。那么在创建iframe的时候就要给它赋name属性。问题就出现了,代码如下

<script language="javascript" defer="defer">
      var IframeObj = document.createElement("iframe");
       IframeObj.id= "myfrm";
       IframeObj.width =0;
      IframeObj.height =0;
       IframeObj.frameborder = 0;
      IframeObj.src="about:blank";
       IframeObj.name = "myfrm";
       document.body.appendChild(IframeObj);
</script>

这段代码在FireFox和Opera下都很正常,但在IE下却赋不了name属性!!!

于是我想可能是因为这样写是把它当作了一个页面元素,所以赋不了,那么就它作为一个window对象,然后再赋name属性。代码如下:

<script language="javascript" defer="defer">
      var IframeObj = document.createElement("iframe");
       IframeObj.id= "myfrm";
       IframeObj.width =0;
      IframeObj.height =0;
       IframeObj.frameborder = 0;
      IframeObj.src="about:blank";      
       document.body.appendChild(IframeObj);

       window.frames.myfrm.name = "myfrm";
</script>

     这样写IE是正常了,可FireFox确又不干了!!!错误提示是window.frames.myfrm没有这个属性???无奈之下只好这么写:

<script language="javascript" defer="defer">
      var IframeObj = document.createElement("iframe");
       IframeObj.id= "myfrm";
       IframeObj.width =0;
      IframeObj.height =0;
       IframeObj.frameborder = 0;
      IframeObj.src="about:blank";

       frameObj.name = "myfrm";
       document.body.appendChild(IframeObj);

       window.frames.myfrm.name = "myfrm";
</script>

这样写就一切正常了,于是我得出了这个结论:在FireFox下,取窗体对象是window.frames.frame_name,而不是windwo.frames.frame_id,在没写frameObj.name = "myfrm";这句代码的时候报没有window.frames.myfrm没有这个属性错误就是这个原因。既然window.frames.frame_name可以,那么window.frames[frame_name]和window.frames[index]当然也是可以的!

 

【深度学习】最强算法之:残差网络(ResNet) 一篇掌握深度学习算法之:残差网络 阅读详情

相关推荐

思科9117AP从零配置EWC模式实战:Wi-Fi6网络搭建避坑指南

本文详细介绍了思科9117AP在Wi-Fi6网络环境下配置EWC模式的实战指南,涵盖镜像准备、网络环境配置、模式转换步骤及高级运维技巧。通过EWC模式,企业可实现控制器与AP的一体化部署,显著降低成本和简化运维,特别适合中小企业Wi-Fi6网络搭建。

weixin_28318011的博客 333

关于 iframe 父窗口和子窗口相互的调用方法

关于 iframe 父窗口和子窗口相互的调用方法,我这里做个总结,方便以后用到。 父窗口调用iframe子窗口方法 HTML语法:<iframe name="myFrame" src="child.html"></iframe> 父窗口调用子窗口:myFrame.window.functionName(); 子窗品调用父窗口:parent.functionName(); 简单地说,也就是在子窗口中调用的变量或函数前加个parent.就行。 下面是iframe父子窗口整...

qq_41834408的博客 603

Claude Code 完整使用教程(2026最新版)

《Claude Code 完整使用教程(2026最新版)》摘要: Claude Code 是 Anthropic 公司推出的智能编程工具,通过自然语言对话实现代码编写、调试和重构。本教程基于 v2.1.101 版本,涵盖安装配置、核心功能及最新特性。主要内容包括: 多平台安装方式(macOS/Linux/Windows) 桌面应用专属功能如并行会话、定时任务和语音模式 模型选择指南(Sonnet/Opus/Haiku) 快速入门示例:5分钟创建Node.js项目 核心功能:代码读写、命令执行、Git集成等

程序猿_三产 2万+

Iframe中的一些操作

1window.frames[“iframe_ID”].document.getElementByIdx_x(“子页面元素id”);1window.parent.document.getElementByIdx_x(“父页面元素id”);6.在父页面操作iframe子页面的方法和变量。

weixin_42621911的博客 383

保姆级教程:用Wokwi玩转ESP32 MicroPython仿真(含库文件配置指南)

本教程详细介绍了如何使用Wokwi平台进行ESP32 MicroPython仿真开发,包括库文件配置、传感器数据模拟和REPL调试技巧。通过Wokwi的仿真调试系统,开发者可以在浏览器中快速验证代码逻辑,提高开发效率,特别适合物联网项目的快速迭代。

weixin_29195615的博客 443

C# WPF多页面间的数据共享(经典)

实现页面间的数据共享有很多方法,比如:①事件的发布订阅 ②委托③ioc容器④静态类等,这节主要通过静态的集合实现数据的添加和获取。

sf315418的博客 639

ArcGIS | 全球新冠肺炎地图数据下载和处理

ArcGIS

thinkpang的博客 2900

js获取iframe对象

搜索资料获取iframe对象可以这样写document.frames("iframeId").document;或 window.frames['iframeId'].document注:注意:window.frames只可写成window.frames[‘iframeId’]不能写成window.frames(‘iframeId’) 但是在IE环境下测试会报Uncaught TypeError:

smile的专栏 1万+

【感知模块算法】障碍物detect+trace+prediction方向介绍

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、多维度看感知问题,体会复杂性二、障碍物/环境目标detect方向1.视觉目标检测方向(1)图像处理认知(2)视觉基础理论部分1、获取数据集---python网页爬虫、买数据、自己录数据、使用开源比赛的数据集2、opencv库的学习3、深度学习框架学习(3)视觉目标检测理论(1)目标检测的概念(2)目标检测的应用场景(3)现有目标检测框架原理及论文【这仅仅是我当初入门学习的框架~

qq_35635374的博客 2894

大数据运营可视化:Tableau+PowerBI数据看板搭建教程

当企业数据量从“GB级”跃升到“TB级”,运营人员面临的最大挑战不再是“如何收集数据”,而是“如何让数据说话”。数据看板作为“运营指挥中心的仪表盘”,能将零散的用户行为、业务指标、流量趋势浓缩成可快速解读的视觉语言。本文结合Tableau(自由探索的“数据瑞士军刀”)与PowerBI(微软生态的“组合家具”)两大工具,从需求分析→数据准备→指标设计→视图搭建→ dashboard 组合,一步步教你搭建符合业务逻辑的运营看板。

AI智能探索者的博客 1362

javascript 判断 iframe是否加载成功

IE的每个elem节点都会拥有一个onreadystatechange事件,这个事件每次在elem内容发送变化的时候触发, 比如内容正在载入loading会触发,内容载入完毕loaded会触发,内容载入成功complete会触发, 这个函数还需要配合readyState,这是ie上每个elem都拥有的属性,用来查看每次触发时候的状态。 //先为iframe 添加一个 onreadystate

chruan的专栏 2769

013 PID参数整定:Ziegler-Nichols法

几年前在调试一台伺服压机,客户要求位置精度±0.01mm,响应时间小于50ms。我按照教科书上的经验值设了P=1.5,I=0.02,D=0.01,结果电机一启动就开始尖叫,位置超调直接干到0.3mm,然后开始震荡,像极了喝醉的舞者。现场工程师看我的眼神,就像在看一个刚毕业的实习生。那次之后我明白了一个道理:PID参数不是靠猜的,也不是靠经验公式硬套的。你需要一个系统的方法,而Ziegler-Nichols法就是那个让你从“瞎调”走向“有章可循”的起点。

m0_50546716的博客 101

IE下,动态创建的iframe在异步提交时会跳转的问题的解决

转载的文章 正好能解决燃眉之急,多谢原作者先。 -------------------------------------------------------------------------华丽的分隔符----------------------------------------------------------- 在一些前端项目中可能要用到动态创建iframe的需求,例如无刷新aja...

weixin_30553065的博客 148

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IE8、IE11浏览器对iframe内容加载完毕后的函数调用

//动态创建iframe并引入其中内容 var ifm = document.createElement("iframe"); ifm.id = "properties"; ifm.scrolling = "no"; ifm.src = url+"/pc/properties"; 后台跳转路径 @RequestMapping(value = ...

sinat_29247277的博客 1078

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IE动态创建带name的iframe跳转问题

在一些前端项目中可能要用到动态创建iframe的需求,例如无刷新ajax上传文件。但是在IE下创建带有name的iframe会有个bug,创建的代码如下: var iframe = document.createElement('iframe'); iframe.name = 'test'; 上面的这段javascript代码在IE下赋不了name属性!!!即iframe.name = 'te...

weixin_34292287的博客 137

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

iframe中的历史记录问题汇总及解决方案[转]

在做页面统计的时候遇到了两个问题: 1.包含iframe的页面,在IE下按后退按钮不能刷新主页面。隐藏Iframe的src是统计程序的url,每点一次后退,就会发出一次页面加载时间请求。 2.由js动态创建的img标签会发出两个http请求,第一个请求在发出后就被aborted,但实际上统计脚本收到了该请求,造成数据重复入库。 针对第一个问题,怀疑是IE针对iframe处理同firefox不...

weixin_33842304的博客 611

销毁iframe

读到篇文章,mark一下。   iframe src不设置为about:blank,内存不会释放掉,还必须用 iframe.document.write(''); 这样才能将内容清空 但是这样处理之后任然会有500-1000K左右的内存残留,这就是ie6的iframe bug, 动态创建的iframe总会耗费掉一些内存。 function clearIframe(id){ va...

luqingxuan 4787

iframe与form中target的简单应用

先看一个例子 <!doctype html> <html> <head> <meta charset="utf-8"> <title>demo</title> </head> <body> <form name="form1"> <div> <...

weixin_33726943的博客 121

如果你想动态创建一个iframe

如果你想动态的在页面创建一个iframe,并且取得iframe的document,和 window. 并且在iframe中插入一个script标签。 //我尝试了各种创建方法,比较难搞定的是 ie8 和 window,IOS 下firefox标签不太一样。 //一个兼容的办法大约是这样。 var iframe = document.createElement('iframe'); v...

weixin_30570101的博客 268

iframe 问题集合

1. 历史记录问题    Firefox: 如果iframe是静态存在在HTML中时,iframe的任何src或者location改变都会被记录到浏览器history中。 如果iframe是在页面加载完成后动态创建的,那么iframe的任何src或者location改变都不会被记录到浏览器history中。 IE: 两种iframe的src或者location改变都会被记录到浏览...

weixin_30451709的博客 145

让innerHTML的js脚本运行起来 总结

让innerHTML的js脚本运行起来 总结 网上搜集的一些方法: 1、IE中插入的HTML里,前面有其他对象,并且script 设置了 defer ;  firefox 把对象重新 append 或者 insertBefore 一次 var fillHTML = function (el,HTMLString) {     if (!el) return;     if (wi

rongwenbin的专栏 3746

魔鬼的梦魇—验证IE中的js内存泄露模式(续)

魔鬼的梦魇—验证IE中的js内存泄露模式(续) 前面几篇文章我们验证学习了Justin Rogers文章中提出的集中泄露模式,但是其中并没有介绍Iframe的内存泄露情况;其中的各种原因,我觉的虽然当时ajax的兴起,极大地促进了web应用程序的开发和发展,但是并没有涉及到大规模的动态更新页面DOM元素,所以这个时候的泄露都不至于会引起大家的关注;但是随着大量js类库框架的出现,特别是ex...

编程资料大全 140

php批量下载文件

关于兼容性问题:   <a href="xxx.docx" target='_blank'></a>   下载文件时,这种写法是没有兼容性问题;但是下载图片时,IE 上会出现当前页面直接打开图片的问题,即便是加了 target='_blank'。 单个文件批量下载 方法一:H5 <a> 新特性   HTML 5 里面为 <a> 标签添加了一个 download 的属性,我们可以轻易的利用它来实现下载功能。download 的属性值是可选的,它用.

weixin_45525177的博客 1478
上一篇: 从QC里导出测试用例到EXCEL的办法及导出乱码的解决办法
下一篇: view改变跳转action
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值