在开发js编辑器的过程中,自己写了一个上传图片的功能,首先我选中了一行文字,然后想把选中的文字替换成图片,于是点击插入图片,这时候弹出上传图片的 对话框,弹出对话框的时候选择的文字还没有失去焦点,弹出对话框中有设置图片的宽度和高度,当我点击设置宽度的文本框准备设置宽度时选择的文字就失去了焦 点,我就没有办法替换掉选择的文字了,火狐没有这个问题,就ie有,这个问题该如何解决,万分感谢!
也就是ie中在两个不同的标签中,比如选择的文字位于一个table,文本框位于一个div,这两个标签是分离的,当选中table中的文字后,如果再点击div中的文本框,选择的文字就失去了焦点,不能替换为图片了,如下图:,该如何解决文本框获取焦点的时候选择的文字不失去焦点?火狐中没有这个问题
可以先把选中的部分Range保存在变量里, 插入图片之前, 使用这个保存的Range重新选中之前选择的文字并取得焦点, 最后替换图片。
“如果再点击div中的文本框,选择的文字就失去了焦点,不能替换为图片了”
失去焦点但选择的状态应该没有丢失,并且你也可以用focus方法使它重新获得焦点。如果选中状态也没了,那就是代码中或逻辑中有地方刷新了文字的选中状态。否则不会出现这种现象的。