zoukankan      html  css  js  c++  java
  • flash做的按扭突然在页面上获取不到焦点之后


    使用兄弟项目组的一个项目www.dbank.com  准备存点资料的时候,发现一个怪异的问题, 项目中用flash做文件上传

    其中有个flash按钮,

    发现在firefox下,

    当这个flash按钮移动到ajax动态加载数据并通过domObj.innerHTML = ´xxx´的方法更新了的html结构上时,

    flash按钮无法获得焦点,

    表现为:能看到flash按钮在最上方,设置z-index为9999也不能点击到此flash按钮;

    经过试验,

    猜测是由于该页面的dom结构虽然更新了,

    但其实浏览器并未重新渲染,

    导致通过ajax加载的html内容会挡住在此flash按钮上方,

    虽然看起来并未挡住。

    所以就需要想办法让浏览器重新渲染,

    以便flash按钮重新回到最上方,能获得焦点。

    有了思路,

    经过测试,

    可以通过如下两种方式解决

    1、在ajax加载完html之后,设置flash按钮或它所在的div层的css属性:display:none;

    然后再设置回来:display:block;,让它重新显示,

    但这两个操作不能连续操作,

    要让flash按钮真正的隐藏了之后,

    再设置display:block显示出来,

    这样才会生效。

    这样操作完之后,flash按钮就能正常地点击了。

    2、解决办法二

    与上述同理,

    先设置css属性:position:static;

    然后再设置css属性:position:absolute;

    同样,这两者之间需要一个时间间隔,连续设置不能达到应有的效果。

     

    当然,考虑在ie下如果设置了flash的css属性为:display:none,或者position:static都会让flash里的程序会中断执行

    所以上述两种方法需酌情使用

     

    总结

    在动态加载html的场景中,

    可能会遇到很多由于浏览器未重新渲染导致的问题,

    如果遇到类似的问题,

    可以试试上述的方法。

  • 相关阅读:
    为什么需要Docker?
    shiro原理
    java面对对象
    mysql面试题
    spring boot +thymeleaf+ mybatis
    mysql语句级sql
    spring boot+spring cloud面试笔记
    Docker-compose配置
    Docker compose命令的使用
    Dockerfile操作命令说明
  • 原文地址:https://www.cnblogs.com/litao229/p/1523503.html
Copyright © 2011-2022 走看看