请求iframe的events写法 document.frames["edit"].document.onkeyup = function() {alert(1);}; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 谢谢您的回复,可是这句话应该放在哪里呢?在iframe.onload()里还是其他地方?谢谢~~ 如:edit.document.body.onkeydown = func(); //edit是iframe的名字或者: edit.document.body.id = "editBody"; $('editBody').onkeydown = func(); ---------------------------------你的这些写法,在FF里根本不行他不认识,1楼的方法是正确的,至于你要吧程序放在哪里,根据自己的需要写吧。点击左上角【结贴去】给人加分就行了 在firefox下可编辑的iframe不能通过editor.document.body.onclick=function(e){}这样来添加事件,要不不响应要使用addEventListener其实firefox3可以支持div的contenteditable属性的,firefox2一下版本不支持<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> 拜谢拜谢!! 终于可以了!!原来要用addeventlistener, 您真是高人阿~~我不用div的contenteditable是因为在firefox里只有iframe能用execCommand, 我本来也是用div写的输入框,用insertNode来加标签,可是弄到后来有太多东西要写了,太痛苦了,所以改投iframe的怀抱.仍然非常感谢!!! js制作网页广告悬浮窗 关于鼠标经过后按钮变背景 急急急急,,看网址,求像百度浏览图片的功能! 关于正则全文搜索~ json数据提交问题 JS跨域访问iframe里的dom 鼠标事件与键盘输入????? 我用session传出来一个二维数组! 怎么在js中解析这个二维数组? 怎样令用window.open()打开的窗口永远在最上面?? jquery mobile传递参数 一个三级菜单的问题...问了很多人都没有结果 在闭包里,如何写类似与jQuery的设置和获取的函数
谢谢您的回复,可是这句话应该放在哪里呢?
在iframe.onload()里还是其他地方?谢谢~~
如:edit.document.body.onkeydown = func(); //edit是iframe的名字
或者: edit.document.body.id = "editBody";
$('editBody').onkeydown = func();
---------------------------------
你的这些写法,在FF里根本不行他不认识,1楼的方法是正确的,至于你要吧程序放在哪里,根据自己的需要写吧。
点击左上角【结贴去】给人加分就行了
<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>
拜谢拜谢!! 终于可以了!!
原来要用addeventlistener, 您真是高人阿~~我不用div的contenteditable是因为在firefox里只有iframe能用execCommand, 我本来也是用div写的输入框,用insertNode来加标签,可是弄到后来有太多东西要写了,太痛苦了,所以改投iframe的怀抱.仍然非常感谢!!!