利用noVNC通过iframe在页面上打开虚拟机时键盘聚焦问题
2017-01-20 17:40
225 查看
利用noVNC在页面上直接打开url连接虚拟机时,键盘事件可以被捕捉到(图1),但是当把url放到iframe中时(我是将网页虚拟机界面直接放到layer中,本质上是iframe),键盘事件不能被捕获,必须先点击最顶端的标题栏或者屏幕旁边的部分才能被捕获(图2)。查阅了资料后,发现noVNC在通过iframe显示时确实存在键盘聚焦问题。
图1
图2
查阅了很多方法后,找到了解决方案。目前只针对Chrome和FireFox,IE的问题是个别按键比如回车和删除不能使用,但目前尚无解决方案。
针对chrome:需要在vnc_auto.html中的添加 tabindex=0;如图
chrome到此就可以解决了。
Firefox需要先聚焦到vnc所在iframe的上一层, $('#layui-layer-iframe1').focus() 。
在layer回调函数中这样写:
success: function(layero,index){
var id_layer_min = layero.attr("id");
var ids =id_layer_min.split("r");
idtabindex= "#layui-layer"+"-iframe"+ids[1];
var ifr = document.querySelector(idtabindex);
ifr.contentWindow.postMessage({a: idtabindex}, '*');
setTimeout(function (){
$(idtabindex).focus();
},500);
},
图1
图2
查阅了很多方法后,找到了解决方案。目前只针对Chrome和FireFox,IE的问题是个别按键比如回车和删除不能使用,但目前尚无解决方案。
针对chrome:需要在vnc_auto.html中的添加 tabindex=0;如图
chrome到此就可以解决了。
Firefox需要先聚焦到vnc所在iframe的上一层, $('#layui-layer-iframe1').focus() 。
在layer回调函数中这样写:
success: function(layero,index){
var id_layer_min = layero.attr("id");
var ids =id_layer_min.split("r");
idtabindex= "#layui-layer"+"-iframe"+ids[1];
var ifr = document.querySelector(idtabindex);
ifr.contentWindow.postMessage({a: idtabindex}, '*');
setTimeout(function (){
$(idtabindex).focus();
},500);
},
相关文章推荐
- 利用代理页面解决html iframe跨域访问网站问题
- 通过iframe 嵌套页面的宽高自适应问题
- 页面中通过点击链接打开本地文件夹或者远程的文件夹,IE完美支持,chrome和FireFox会出现问题
- EasyUI Tabs + Yii2.0实现iframe方式打开页面(解决共用静态文件引入加载的问题)
- 通过伪协议解决父页面与iframe页面通信的问题
- 通过 Spring Security配置 解决X-Frame-Options deny 造成的页面空白 iframe调用问题
- js 通过post方式打开页面 利用html5本地存储获取数据
- 通过伪协议解决 父页面与iframe页面通信的问题
- 解决通过UIAlertView按钮点击事件pop回上级页面键盘会响应问题
- 后台管理系统问题:点击a链接,打开二级页面的同时,iframe页面中的a链接新建了一个页面
- 利用代理页面解决html iframe跨域访问网站问题
- python——利用python通过浏览器打开博客页面
- 利用代理页面解决html iframe跨域访问网站问题
- IE (6-11)版本,在使用iframe的框架时,通过a标签javascript:; 和js跳转parent.location的时候 出现在新页面打开的情况
- 通过伪协议解决 父页面与iframe页面通信的问题
- HTML的<a>标签利用href=#XX在当前页面跳转时会自动打开新窗口的问题
- 终于解决了一个困扰我许久的问题:通过window.showModalDialog打开的页面,Form提交,标题丢失
- 在iframe里打开页面
- 通过javabean的方法在jsp页面打开chm文件
- 终于搞定了难缠的IE打开某些页面时因“SysFader:expLorer.exe”错误而异常关闭的问题