gpt4 book ai didi

javascript - 获取错误 "Form submission canceled because the form is not connected"

转载 作者:IT王子 更新时间:2023-10-29 02:37:48 26 4
gpt4 key购买 nike

我有一个使用 JQuery 1.7 的旧网站,直到两天前它都可以正常工作。突然我的一些按钮不再起作用,点击它们后,我在控制台中收到这个警告:

Form submission canceled because the form is not connected

点击背后的代码是这样的:

 this.handleExcelExporter = function(href, cols) {
var form = $('<form method="post"><input type="submit" /><input type="hidden" name="layout" /></form>').attr('action', href);
$('input[name="layout"]', form).val(JSON.stringify(cols));
$('input[type="submit"]', form).click();
}

Chrome 56 好像不支持这种代码了。不是吗?如果是,我的问题是:

  1. 为什么这突然发生了?没有任何弃用警告?
  2. 此代码的解决方法是什么?
  3. 有没有办法在不更改任何代码的情况下强制 chrome(或其他浏览器)像以前一样工作?

附言它在最新的 firefox 版本中也不起作用(没有任何消息)。它也不适用于 IE 11.0 和 Edge! (两者都没有任何消息)

最佳答案

快速回答:将表单附加到正文。

document.body.appendChild(form);

或者,如果你像上面那样使用 jQuery

$(document.body).append(form);

详细信息:根据 HTML 标准,如果表单没有关联到浏览上下文(文档),表单提交将被中止。

HTML SPEC见 4.10.21.3.2

在 Chrome 56 中,应用了此规范。

Chrome code diff见@@ -347,9 +347,16 @@

P.S 关于您的问题 #1。在我看来,与 ajax 不同的是,表单提交会导致即时页面移动。
因此,显示“已弃用的警告消息”几乎是不可能的。
我也认为这个严重的变化没有包含在功能变化列表中是 Not Acceptable 。 Chrome 56 功能 - www.chromestatus.com/features#milestone%3D56

关于javascript - 获取错误 "Form submission canceled because the form is not connected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42053775/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com