iframe 写入文档的问题

本文介绍了一个基于niceEditor的富文本编辑器初始化过程,包括iframe元素的创建与配置、文档设计模式的启用及样式设置等关键技术点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里使用了niceEditor 的代码片段:


init : function() {
... ...
// 创建一个iframe元素
this.elmFrame = new bkElement('iframe').setAttributes({'src' : '', 'frameBorder' : 0, 'allowTransparency' : 'true', 'scrolling' : 'no'}).setStyle({height: '100px', width: '100%'}).addClass('frame').appendTo(this.elm);

if(this.copyElm) { this.elmFrame.setStyle({width : (this.elm.offsetWidth-4)+'px'}); }

... ...

//由于IE6和部分浏览器,无法正常读取新建的iframe元素,我们这里使用了setTimeout来延迟触发动作。
// 50ms是个大概,基本能保证读取到文档。
setTimeout(this.initFrame.closure(this),50);
},
initFrame : function() {
var fd = $BK(this.elmFrame.contentWindow.document);

//开启文档设计模式
fd.designMode = "on";
fd.open();
var css = this.ne.options.externalCSS;
fd.write('<html><head>'+((css) ? '<link href="'+css+'" rel="stylesheet" type="text/css" />' : '')+'</head><body id="nicEditContent" style="margin: 0 !important; background-color: transparent !important;">'+this.initialContent+'</body></html>');
fd.close();
this.frameDoc = fd;

this.frameWin = $BK(this.elmFrame.contentWindow);
this.frameContent = $BK(this.frameWin.document.body).setStyle(this.savedStyles);
this.instanceDoc = this.frameWin.document.defaultView;

//更新文档高度
this.heightUpdate();

//注册事件
this.frameDoc.addEvent('mousedown', this.selected.closureListener(this))
.addEvent('keyup',this.heightUpdate.closureListener(this))
.addEvent('keydown',this.keyDown.closureListener(this))
.addEvent('keyup',this.selected.closure(this));

//最后触发编辑区域已准备的事件
this.ne.fireEvent('add',this);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值