focus after selection ——ie和Firefox的差别

今天使用fckeditor做一个变量插入的功能,也就是点击按钮后,在fckeditor里插入相应的值。当然了,这段代码是插入textarea或者textfield的; function insertNotifyArgments(t){

[code="js"] var str = t.value;
var ubb=$('reccamTemplateVO.content');
var ubbLength=ubb.value.length;
ubb.focus();
if(typeof document.selection !="undefined"){
document.selection.createRange().text=str;
}else{
ubb.value=ubb.value.substr(0,ubb.selectionStart)+str+ubb.value.substring(ubb.selectionStart,ubbLength);
}

}

[code]
使用到这种可编辑的iframe里是不行。

 

搜索一圈又以下代码。

	function insertNotifyArgments(str){
		var wnd = $("reccamTemplateVO.content___Frame").contentWindow.document.getElementsByTagName("IFRAME")[0].contentWindow;
		 wnd.focus();
	
		 if(typeof document.selection !="undefined"){
			 wnd.document.selection.createRange().text=str;
		}else{
			 wnd.document.execCommand("InsertHTML", false,str);
		}
		 
	}
 

但是问题来了,在Firefox下是正确的,ie下每次插入都是最前面,

 

仔细观察后发现,在Firefox里一个域里有selection的时候,你点击了另外一个域,使这个域focus,上一个域的selection是存在的所以,使用上面的代码位置是正确的。但是在ie下一旦触发了blur,selection就丢失了。。

 

 

像我的这个功能点,操作是这样的,选择一个selection,点击一个下拉框,选中一项。此时ie下selection域的onblur就已经触发了。。。失败。

 

所以只能在点击按钮的时候插入。因为selection后,点击按钮、链接的时候,触发onclick的,此时onblur没有触发,,所以需要修改为按钮。

 

 

....解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值