flex导致浏览器对指定站点输入法无法输入中文的问题
来源:互联网 发布:淘宝卖家打印发货清单 编辑:程序博客网 时间:2024/05/16 07:00
主体环境
flash player 11, ie8/ie9, mx控件(非s控件),xp系统,极点五笔
问题
在html中设计div弹方框,并用swfobject方式加载swf,同时设置其params.wmode="opaque",此swf包括mx:Button, mx:Label, mx:Progressor, mx:Cavas, mx:Image, mx:HBox等,没有mx:Textfield.
html页面中包括textarea。
加载后,textarea无法输入中文了,无论怎么切换输入法都不可以。同时,访问当前浏览的网站的其他页面的textarea/input,也无法输入中文了。
主要原因
flex的控件,都有设置内部的IME支持,默认情况下,这些控件应该是根据一定的系统初始化了IME的设置(暂时无法取证),而且IME的生效与控件的focus相关。所以当浏览器访问flex的控件时,会触发了IME的设置,并把浏览器当前站点的IME设置给屏蔽掉。
测试及验证
案例1:更换输入法 为sougo中文输入法
结果1:问题继续呈现,证明与输入法的安装及环境无关
案例2:更换浏览器 为chrome, firefox, 360(IE),ie7, ie8, ie9
结果2:chrome(33.+版本), firefox(27.+版本)问题不再呈现,360(IE),ie8,ie9,ie7出现,可见这种现在发生在IE上
案例3:将wmode设置为"window", "transparent","opaque"
结果3:window模式问题不再呈现,而opaque, transparent则会发生此问题
案例4:测试是在flash加载后产生,还是在控件focus后产生(以button为代表)
结果4:flash加载,不触发任何控件的聚焦,则不会发生;反而一旦触发了某个控件的focus事件,则产生问题。
案例5:测试各种控件的发生情况,button,label,image,textfield等
结果5:基本的文字控件(button, textfield, date等)都会,combox, image, label则不会
解决方案
方案1: 一般情况下,flex应该遵循外部的IME设置,可以在初始化整个flex窗体的时候,全部设置:
focusManager.mx_internal::IMEEnabled = false;
参考: https://issues.apache.org/jira/browse/FLEX-33144
方案2:利用flash.system.Capabilities设置窗体的roll out 事件:
addEventListener(MouseEvent.ROLL_OUT, function(e:Event):void{ if(Capabilities.hasIME){ try{ if(!IME.enabled){IME.enabled=true;} IME.conversionMode="CHINESE"; }catch(e:Error){ } } });
参考:http://zyn010101.iteye.com/blog/1115295
方案3:除非有样式要求,否则直接使用wmode="window"方式。
其他方案,可参考 http://hi.baidu.com/jackflit/item/59725b9a14c7908a581461a0 (没有试过)
- flex导致浏览器对指定站点输入法无法输入中文的问题
- 输入法设置导致PowerPoint2007无法输入中文
- Ubuntu下搜狗输入法无法输入中文的问题
- 64位ubuntu16.04下pycharm无法切换fcitx输入法和无法输入中文的问题
- Flex 文本框无法输入中文的bug
- emacs中文输入法不能输入的问题
- linux/ubuntu14搜狗输入法无法输入中文问题
- 解决Ubuntu中搜狗输入法无法输入中文问题
- Ubuntu搜狗输入法无法输入中文等问题
- 解决ubuntu 14.04下,搜狗输入法无法输入中文的问题
- 关于IDEA2017.2.5 输入法 中文输入框无法显示问题的解决方案
- Ubuntu下wps无法输入中文 使用的是搜狗输入法
- ubuntu16.04搜狗输入法无法输入中文的解决方法
- UITextField中文输入法输入时对字符长度的限制
- Flex: 数据绑定将无法检测对“***”的指定
- 一种导致UITextView无法输入中文打出汉字的原因
- 数据库xml配置文件无法输入&导致中文乱码的解决方案
- 解决 Flash 透明模式下Firefox、Opera等浏览器无法输入中文的问题
- js 组合算法
- 常用的高效「查找」算法
- 2014 IT公司校招应届生待遇大揭秘
- DM6446编译选项
- 仿冒银行升级助手的木马分析
- flex导致浏览器对指定站点输入法无法输入中文的问题
- 守护进程
- 有格式文本控件RichTextBox(文本类控件)
- 栈
- 设置响应头的Content-Disposition属性,实现文件下载示例
- nyoj-550-三位数逆序输出
- 确认oracle数据库错误日志文件位置
- Linux中的终端介绍
- java报“非法字符: \65279 ”错误的解决方法