在线编辑器的问题
自己写的在线编辑器,用的iframe,我现在知道的状况是当iframe的src属性等于空的时候iframe会是编辑状态,但是我想让在写完要写的内容后直接按 alt+s 把内容提交,父窗体的提交我用的ajax,所以就触发一个父窗体的js方法就可以了,但是现在写完字之后焦点在 iframe 里面,而iframe的src又是空的,我怎么把写在父窗体的事件注册给iframe呢?
如果分不够,我另开贴加分,谢谢了
问题点数:100 回复次数:5 显示所有回复显示星级回复显示楼主回复 修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
varlj
灰色逻辑 要做会说汪汪的老鼠
等级:
可用分等级:富农
总技术分:9511
总技术分排名:2193
发表于:2008-11-14 19:02:221楼 得分:0
window.parent.doSubmit();//假设doSubmit()是提交方法
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
neo_yoho
yoho~
等级:
可用分等级:掌柜
总技术分:24058
总技术分排名:521
发表于:2008-11-14 19:08:142楼 得分:0
获取alt+s事件后直接调父窗口function
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
chinmo
藏*无限
等级:
可用分等级:掌柜
总技术分:114683
总技术分排名:45
3
9
发表于:2008-11-14 19:45:483楼 得分:0
你在alt+s这个按键的事件里直接调用父窗口的事件
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
showbo
要学习了.....さようなら
等级:
可用分等级:富农
总技术分:58143
总技术分排名:142
3
3
发表于:2008-11-14 22:02:444楼 得分:100
给iframe注册事件
注意一点的是在ff时不能使用frame.document.onclick,这样不响应事件,需要addEventListener来添加事件
eg
HTML code<table width="300px" border="0" cellspacing="0" cellpadding="0">
<tr><td style="border:1px solid #81a9ce;background:#fff;">
<iframe id="editor" src="about:blank" style="height:100px;width:100%;background:#fff;" frameBorder="0" marginHeight='0' marginWidth='0' onload="setEditable()"></iframe>
</td></tr></table>
<script>
var IsIE=!!document.all;
function $(objId,IsFrame){
if(IsFrame) return IsIE?frames[objId]:document.getElementById(objId).contentWindow;
else return document.getElementById(objId);
}
function setEditable(){
try{
var frm=$('editor',true);
doc=frm.document;
if(doc.body){
doc.body.style.backgroundColor='#ffffff';
doc.body.style.fontSize='12px';
doc.body.style.fontFamily='verdana';
doc.body.style.margin='4px';
}
doc.designMode="On";
doc.contentEditable="True";
InitFrameEvent(frm,doc);//注册事件
}catch(e){alert(e)}
}
function InitFrameEvent(frm,doc){
//=====================IE===================
if(IsIE)
doc.onkeydown=function(){
e=frm.event;//注意这里获取的是iframe中的事件对象
if(e.altKey&&e.keyCode==83)PostMethod()
}
else//firefox
doc.addEventListener(
'keydown'
,function(e){
if(e.altKey&&e.keyCode==83){
e.preventDefault();//你的快捷键和firefox的历史快捷键冲突,所以要阻止默认事件
PostMethod();
}
}
,false);
}
function PostMethod(){
alert('按下Alt+S键,执行ajax提交');
}
</script>
加支付宝好友偷能量挖...