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>")都是可以的写入的,请大侠指点!
...全文
535 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/7b90c9d33475 苹果CMS作为一款适用于个人与企业网站的开源内容管理工具,因其卓越的功能完备性与操作便捷性而备受青睐,特别是在构建视频和音频平台时展现出优越性能。 "影音先锋"是一款享有盛誉的多媒体播放软件,能够兼容多种格式的音视频文件,并拥有高效的解码技术以及网络流媒体传输支持。 当将"影音先锋"整合为苹果CMS的播放器组件时,用户将享受到更为顺滑且音画质量更佳的在线视听服务。 在"苹果cms影音先锋播放器插件.rar"这个归档文件中,一般会包含以下几个核心构成部分: 1. **播放器模块**:这是一个针对苹果CMS进行优化的影音先锋播放器单元,可能涵盖JavaScript、CSS以及PHP等编程文件,旨在实现影音先锋播放器在网站中的部署和操控。 这些文件将负责与苹果CMS平台进行交互,处理播放指令,管理播放队列,以及呈现播放控制界面(例如播放、暂停、快进、后退、全屏切换等功能)。 2. **说明文档或部署手册**:可能附带有README文件或同类文档,详细阐述插件的部署和参数配置流程,包括如何在苹果CMS管理端激活插件,设定播放器特性,以及应对常见故障的方法。 3. **示范代码**:插件制作者有时会提供示范模板或代码样本,旨在辅助用户掌握如何在网站页面中调用播放器,以及如何与其它功能模块(如搜索、分类、评论等)进行融合。 4. **授权许可文件**:插件可能附带一份授权声明,明确规定了插件的使用范畴、修改权限和版权归属。 用户在应用插件前必须详尽阅读并遵循这些条款。 5. **升级或更新程序**:若插件存在新版迭代,开发者或许会提供一个自动或手动升级程序,使用户能够便捷地将旧版播放器插件更新至最...

87,984

社区成员

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

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