zoukankan      html  css  js  c++  java
  • firefox浏览器相关的2个坑

    今天遇到一个bug,找回密码的功能在google浏览器正常,在firefox浏览器不正常。在排查该bug的过程中遇到2个坑。先总结一下:

    1、firefox浏览器无法debug,“脚本”面板提示:本页面不包含 Javascript 如果 <script> 标签有 "type" 属性, 其值应为 "text/javascript" 或者 "application/javascript". 另外脚本必须可解析(语法上正确)。

    2、jquery动态form在firefox不能提交。

    接下来详细说明。

    一、firefox无法debug

    场景如下:前提是页面中有js文件,但是firefox“脚本”面板却提示:本页面不包含 Javascript 如果 <script> 标签有 "type" 属性, 其值应为 "text/javascript" 或者 "application/javascript". 另外脚本必须可解析(语法上正确)。

    导致无法打断点debug,但是我又必须在firefox浏览器中排错,所以就上网查啊。

    有一些坑爹的答案比如:遇到这种情况,一般重置firebug,然后开启“脚本“功能,刷新页面,就能显示正常。试了之后根本不管用。

    在火狐社区里看到一句话:50上firebug有兼容问题,等待作者更新或先安装49版本。

    这才是问题的原因,所以果断卸载了最新的51的firefox,下载了49的firefox终于可以正常debug了。

    二、jquery动态form在firefox不能提交。

    jquery动态form在firefox不能提交,即form.submit()火狐浏览器提交失败。debug的过程中发现form.submit()提交后在google浏览器里有向服务器发送请求,但是在firefox中却没有。太奇怪了,查了资料发现。

    这是Firefox的一种安全策略,在火狐浏览器中只有当页面中存在form时,submit();方法才会被激活。

    原来代码如下:

      var standardPost = function(url, args) {
                var form = $("<form method='post'></form>");
                form.attr({
                    "action": url
                });
                for (arg in args) {
                    var input = $("<input type='hidden'>");
                    input.attr({
                        "name": arg
                    });
                    input.val(args[arg]);
                    form.append(input);
                }
                form.submit();
            }
        

    修改后:

    在html中加入一个隐藏的div。

    <div id="batchDiv" style="display:none"></div>

    form表单追加到这个隐藏的div中。

     var standardPost = function(url, args) {
                var form = $("<form id='smbForm' method='post'></form>");
                form.attr({
                    "action": url
                });
                for (arg in args) {
                    var input = $("<input type='hidden'>");
                    input.attr({
                        "name": arg
                    });
                    input.val(args[arg]);
                    form.append(input);
                }
                $("#batchDiv").empty().append(form);//添加到隐藏div中  
                //form.submit();
                $('#smbForm').submit();
    
            }

    本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:http://www.cnblogs.com/starof/p/4904929.html有问题欢迎与我讨论,共同进步。

  • 相关阅读:
    ABAP实现屏幕自己刷新和跳转功能
    SAP 邮件发送
    MIRO做发票校验时实现替代功能的多种方式
    SAP资产折旧,消息编号AA687:在上一年结算之后您只能记帐到新的一年
    SAP 月结F.19与GR/IR
    ABAP字符串的加密与解密
    ABAP DEBUG
    NUMBER_GET_NEXT
    OO ALV 学习参考
    Crontab定时任务配置
  • 原文地址:https://www.cnblogs.com/starof/p/6365767.html
Copyright © 2011-2022 走看看