zoukankan      html  css  js  c++  java
  • 解决Firefox下,页面元素不刷新问题

    由于FireFox的刷新机制与IE有较大区别。所以javascript代码 document.location.reload();通常在IE上工作正常,在Firefox下效果却并不理想,这是因为Firefox会记录上一次的页面元素的值,所以我们常常会看见刷新页面后,旧的值却好保留在页面上。

    Tips: document.location.reload()相当于在Firefox上 按F5 来刷新,但 F5刷新 并不能清除缓存中被保留的页面元素的值。但我们可以用Ctrl+F5 来实现IE下F5的效果,先清除缓存,然后刷新页面。

    但是在网页开发过程中,如何保证Firefox下的页面元素不保留上一次的结果,实时刷新呢?这里可以用到一个属性:autocomplete

    将autocomplete设置成"off" 后退或刷新页面时,Firefox就不会自动记忆表单状态了。

    autocomplete可以应用到整个form,也可以应用到单个的input上。如:

    <form name="form1" method="post"  autocomplete="off">

        。。。

    </form>

    <input type="radio"   name="rd_service" value="1">...</input>

    通常在实际情况下,可能需要执行两次document.location.reload();才能真正刷新, 本人不才,还不能理解其中奥妙,这个可能是firefox3.6的bug。 请参考如下sample代码:

    <script  type="text/javascript">
        var memberID = "<%=memberName%>";
        var headersavedservice = "<%=category%>";
        
        function headerchangeService(r_service){

            if(confirm("Save it to default Service?"))
                     {
              
           changeDsService(memberID, r_service);        
           document.location.reload();
           document.location.reload();
            }
            else
            {
               var rd_services = document.getElementsByTagName_r("input");
             for (var i = 0 ; i < rd_services.length ; i++ ){
                                if(rd_services[i].name == "rd_service" && rd_services[i].value == headersavedservice){
                                     rd_services[i].checked=true;
                                     break;
                                }
                           }                    
            }
        }
        
              </script> 

    原文转载:http://blog.sina.com.cn/s/blog_647ca5120100j6n5.html

  • 相关阅读:
    第七章11
    第七章10
    第七章9
    第七章8
    第七章7
    第七章6
    第七章5
    第七章例7-13
    第七章例7-12
    第七章例7-11
  • 原文地址:https://www.cnblogs.com/zhy-1992/p/6179940.html
Copyright © 2011-2022 走看看