• 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有问题欢迎与我讨论,共同进步。

  • 相关阅读:
    vue3自定义指令过滤input的输入内容
    我的收藏周刊011
    我的收藏周刊012
    20192416《系统与网络攻防技术》实验八实验报告
    Dapr学习(3)之服务调用概述
    摄影后期调色RAW数码照片图像HDR全景制作Lightroom(Lr)2022(Mac/win)
    新入手的苹果电脑需要安装的几款工具
    图片编辑工具Photoshop 2022中文
    Xmind 2022激活版终于等到你!
    矢量图像绘图设计(AI 2022)Illustrator 2022中文
  • 原文地址:https://www.cnblogs.com/starof/p/6365767.html
Copyright © 2020-2023  润新知