场景与问题:
查看 demo:ff-iframe-bug
初始状态下 iframe 中的内容可编辑,可选中,当动态改变 iframe 的 position(即改变 layout )后,该 iframe 出现三个问题:
1. 不可编辑
2. 光标消失
3.原先选中区域(光标位置)丢失
分析与修复:
想不到一向稳重的 firefox 也会有这么折磨人的 bug,还好 ckeditor 已有完美解决方案,从纷繁芜杂的代码丛中理出来就是:
1.不可编辑,就重新设一遍 contentEditable
2.光标消失就绕一下:先由其它可获得焦点的元素获得焦点,然后 iframe 窗体以及 body 再获得焦点,最后惊奇发现光标回来了!不过到了编辑区最后 ....
3.丢失就要多保存:操作前保存选中区域以及光标位置(range),操作后再把保存的 range 设置回去。
查看demo:ff-iframe-fix
代码实例:
var savedRange = null;
//保存选择区域以及光标位置
function save() {
var sel = win.getSelection();
if (sel) {
savedRange = sel.getRangeAt(0);
}
}
function show() {
if (UA.gecko) {
//激活编辑与光标
body.contentEditable = false;
body.contentEditable = true;
a[0].focus();
win.focus();
body.focus();
//范围回复
var sel = win.getSelection();
sel.removeAllRanges();
sel.addRange(savedRange);
}
}
分享到:
相关推荐
iframe和firefox的兼容。
1.由于 firefox 默认是允许网页自己选择字体,在 Linux 上便会出现部分网站的乱码情况。因此可以取消允许页面自己选择字体这个选项便能解决部分乱码情况。 2.倘若还有乱码,以及其他应用程序乱码,则尝试如下...
解决IE,Firefox,chrome,safari浏览器中iframe显示高度自适应问题
Firefox 52.0.2 渗透便携版 90SEC beta8 含多个文件 Firefox 52.0.2 渗透便携版 90SEC beta8 Firefox 52.0.2 渗透便携版 90SEC beta8 Firefox 52.0.2 渗透便携版 90SEC beta8 Firefox 52.0.2 渗透便携版 90SEC beta8...
Firefox填写表单扩展 安装方法很简单,直接拖拽到火狐浏览器窗口中然后根据提示操作即可。 随时关注最新版: http://code.google.com/p/ffextension/downloads 火狐官方下载地址: ...
解决firefox下resize事件无效问题
Firefox 29 - 完整包,下载后直接就能用,新手或懒得折腾的直接下载这个就行了 全新的重要自定义模式可轻松个性化您的Web体验,以访问您最常用的功能 Firefox的右上角有一个易于访问的新菜单,其中包含流行的...
ScrapBook for FireFox 1.5.14 ScrapBook for FireFox 1.3.7 直接用FIREFOX打开 XPI 文件即可
受影响的包括uBlock Origin、AdGuard AdBlocker、AdBlock For Firefox、AdNauseam等广告拦截扩展。只有科学上网,去AdGuard或AdGuard AdBlocker英文网站主页安装这个插件。你也可以尝试下载这个离线安装插件,解压缩...
火狐firefox adblock xpi插件,adblock for macOS firefox,解决火狐浏览器安装adblock显示此页面在您的地区不可用问题,解压拖动到火狐浏览器即可安装,完美解决无法从插件市场安装的问题
火狐浏览器 59 版本,firefox 59版本,直接点击安装。
Mozilla Firefox,中文俗称“火狐”(正式缩写为Fx或fx,非正式缩写为MF),是一个自由及开放源代码的网页浏览器,使用Gecko排版引擎,支持多种操作系统,如Windows、Mac OS X及GNU/Linux等。该浏览器提供了两种版本...
JavaScript在IE和Firefox(火狐)的不兼容问题解决
解压后可用,资源全名:Firefox Setup 45.0.2.exe
自带的火狐浏览器太老了,通过该浏览器,很多功能都不能实现,实际上不是bug,只是该更新版本了,建议安装最新的火狐浏览器。条件限制,有时只能离线安装,可以下载此离线文件进行安装。 先把安装包拉进去,打开...
firefox52.0.2最新渗透便携版,打开解压就可以使用,包含了几乎所有的渗透测试插件 Firefox是一一个出自Mozilla组织的流行的Web浏览器。Firefox的流行并不仅仅是因为它是一-个好的浏览器,而且它能够支持插件进而...
解压后可用,资源全名:Firefox Setup 52.9.0esr.exe
资源全名:Firefox 52.9.0esr.dmg
资源全名:Firefox 52.1.1esr.dmg