繁体   English   中英

表单提交在最新的 chrome 版本中不起作用 (83)

[英]Form Submit not working in latest chrome build (83)

Chrome:chrome 更新版本 83.0.4103.97(官方构建)(64 位)

流动

  1. Function function_name是从一个页面调用的(这个页面在整个场景中仍然是主要的父页面),该页面有一个包含多个记录的表,并且一个记录有一个超链接,该超链接可以获取更多数据并显示在覆盖/弹出窗口中。
  2. 底部代码部分中提到的代码等位于表单和 iframe 存在的 Popup/Overlay 块上,并促进了整个过程。
  3. 在 Form submit here 中调用另一段 html 代码,然后将其填充到 iframe 中,请检查 iframe 的目标。

问题

表单提交较早地适用于所有浏览器并发布新更新它不适用于最新的 chrome 版本,但它目前正在其他浏览器上运行,没有任何问题。

不工作的解释

我添加了日志,它按预期工作,直到调用表单提交行。 在提交表单时,我们希望调用新的 html 部件,然后将其加载到 iframe 中。 该页面永远不会在最新的 chrome 构建中被调用(在所有其他浏览器中都会被调用),网络选项卡上也没有反射,因为在表单提交时调用了另一个文件。 (发生在所有其他情况下)

观察

  1. 弹出流程是从父页面中的按钮单击启动的(如流程中所述)

    <a href="#" onclick="function(this,val1,val2); return false;">

上面给出了相同的代码,如果从父页面中删除相同的代码,然后用其他代码替换,然后再次更改回相同的代码,则它可以正常工作。 (我不知道为什么!)

  1. 这种行为也很不稳定,即使在最新的 chrome 上,它也能正常工作,一次或两次。 但系统在所有其他浏览器上的效率是 100%。

代码:最小(添加注释以便单独理解)

<div id="divid" class="dialog" title="">    
<!-- Iframe -->
    <center>
      <iframe name="frameid" id="frameid" src="/images/somegif.gif" width=820 height=400 frameborder=0 style="border:0; padding:0; margin:0;"></iframe>
    </center>
</div>
    <!-- Form -->
    <form id="formid" name="formid" method="post" action="/somefile.html" target="framename">
       <!-- Some Form Elements -->
    </form>
    <script>
    //Javascript

$(function() {
    $("#divid").dialog({
        width: 860,
        autoOpen: false,
        modal: true,
        resizable: false,
        open: function(e, ui) {
            $(this).siblings(".ui-dialog-titlebar").find("button").blur(); 
        },
        close: function() {
            jQuery('#framename').attr('src','/images/somegif.gif')
        }
    });
});

    function function_name(val1,val2) {
      var form_obj;
      form_obj=document.getElementById('formid');
      if (form_obj) {
        //some operation, validation etc.   
        jQuery("#divid").dialog('open');
        somefun(form_obj, "var_name", var_name); //They are working fine 
        somefun2(form_obj, "var_name2", var_name2); //They are working fine
        form_obj.submit();
      }
    }
    </script>

我刚刚注意到表单名称和 ID 相同,iframe 也是如此。 写这篇文章的开发者不再和我们在一起,简而言之,不是我的代码。

@Gandalf,在铬上发现了这个问题。 问题 1092200:提交目标为 iframe 的表单随机失败

它的错误修复已合并到 84,但 问题 1092313 的错误修复:表单提交优先于 window.location 导航导致回归,看起来他们仍在调查它。

我们也遇到同样的问题,看1092200

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM