FF中关于document.write()的BUG

yugong2009 2010-01-11 04:10:49

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>document.writeln in firefox</title>
<script type="text/javascript"language="javascript">
var strFrame;
document.writeln('<iframe id="meizzDateLayer" name="meizzDateLayer" frameborder=0 style="position: absolute; width: 144; height: 260; z-index: 9998;"></iframe>');
strFrame = "<div>asdfsaf</div>"

window.frames.meizzDateLayer.document.writeln(strFrame);

</script>
</head>

<body>

</body>
</html>

此代码在IE下能正常运行,但在FF下,总是报错window.frames.meizzDateLayer is undefined
似乎iframe没有成功写入
我测试过在FF下用document.writeln("<div></div>")都是可以的写入的,请大侠指点!
...全文
531 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yugong2009 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 blackparadise 的回复:]
这种应该会有加载顺序上的问题
把这个写到iframe的onload事件里吧
[/Quote]

确实就是这个问题,我刚才有FireBug断点调了下,执行到window.frames.meizzDateLayer.document.writeln(strFrame);
时,HTML中是空的,即iframe对象还没有成功载入
blackparadise 2010-01-11
  • 打赏
  • 举报
回复
这种应该会有加载顺序上的问题
把这个写到iframe的onload事件里吧
2010-01-11
  • 打赏
  • 举报
回复
write 的时候document还没加载

把<script>块放到body中
或者window.frames.meizzDateLayer.document.writeln(strFrame);放到window.onload函数里
草根醉秋意 2010-01-11
  • 打赏
  • 举报
回复
document.getElementById("meizzDateLayer").contentWindow.onload = function(){
document.getElementById("meizzDateLayer").contentDocument.write("test");
}
happy002 2010-01-11
  • 打赏
  • 举报
回复
会不会是没加载完?或者执行顺序问题?
你把window.frames.meizzDateLayer.document.writeln(strFrame)放在一个函数里,在页面上放一个按钮调用试试,看还报不报这个错误。或者在上面加个alert(),
yugong2009 2010-01-11
  • 打赏
  • 举报
回复
我刚才用FireBug查看了下,iframe已经写到了document中,
那会不会是加载的顺序问题呢——在iframe对象还没加载完,就开始执行下面的语句?
yugong2009 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 free_wind22 的回复:]
JScript code
document.getElementById("meizzDateLayer").contentWindow.document.writeln(strFrame);
[/Quote]

这样,会报document.getElementById("meizzDateLayer") is null
是不是iframe根本就不存在呀?
yugong2009 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 happy002 的回复:]
ff下用
window.frames['meizzDateLayer']
试试
[/Quote]
试过,还是报同样的错!
2010-01-11
  • 打赏
  • 举报
回复

document.getElementById("meizzDateLayer").contentWindow.document.writeln(strFrame);

happy002 2010-01-11
  • 打赏
  • 举报
回复
ff下用
window.frames['meizzDateLayer']
试试
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 平台简介 License Spring Boot JDK-17 本项目基于ruoyi-vue-fast实现 项目代码、文档 均开源免费可商用 遵循开源协议在项目保留开源协议文件即可 活到老写到老 为兴趣而开源 为学习而开源 为让大家真正可以学到技术而开源 若依wms是一套基于若依的wms仓库管理系统,支持lodop和网页打印入库单、出库单。 毫无保留给个人及企业免费使用。 前端采用Vue、Element UI。 后端采用Spring Boot、Spring Security、Redis & Jwt。 权限认证使用Jwt,支持多终端认证系统。 支持加载动态权限菜单,多方式轻松权限控制。 高效率开发,使用代码生成器可以一键生成前后端代码。 前端项目地址 gitee https://gitee.com/zccbbg/ruo-yi-wms-vue https://.com/zccbbg/RuoYi-WMS-VUE 若依实战技术专栏 关注文末公众号回复:星球 在线体验 https://wms.ichengle.top/ 不同分支介绍 jdk17+vue3,支持多仓库,没有库区概念,操作简单,覆盖大部分库存应用场景。 jdk17+vue3,支持多仓库、多库区,记录生产日期、过期日期、sn,可适配一物一码,操作相对复杂。 jdk8+vue2 同步lite分支 若依wms功能 首页:库存预警与到期提醒、基础数据报表展示 仓库/库区:管理维护仓库基础数据 物料:管理维护物料基础数据 客户/供应商:管理维护联系人基础数据 入库:创建入库单后包括如下几个状态:暂存、作废、完成入库,入库类型包括:采购...

87,986

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧