[英]Form Submit not working in latest chrome build (83)
Chrome:chrome 更新版本 83.0.4103.97(官方构建)(64 位)
流动
function_name
是从一个页面调用的(这个页面在整个场景中仍然是主要的父页面),该页面有一个包含多个记录的表,并且一个记录有一个超链接,该超链接可以获取更多数据并显示在覆盖/弹出窗口中。问题
表单提交较早地适用于所有浏览器并发布新更新它不适用于最新的 chrome 版本,但它目前正在其他浏览器上运行,没有任何问题。
不工作的解释
我添加了日志,它按预期工作,直到调用表单提交行。 在提交表单时,我们希望调用新的 html 部件,然后将其加载到 iframe 中。 该页面永远不会在最新的 chrome 构建中被调用(在所有其他浏览器中都会被调用),网络选项卡上也没有反射,因为在表单提交时调用了另一个文件。 (发生在所有其他情况下)
观察
弹出流程是从父页面中的按钮单击启动的(如流程中所述)
<a href="#" onclick="function(this,val1,val2); return false;">
上面给出了相同的代码,如果从父页面中删除相同的代码,然后用其他代码替换,然后再次更改回相同的代码,则它可以正常工作。 (我不知道为什么!)
代码:最小(添加注释以便单独理解)
<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.