Javascript form.submit() 在 Safari 中不起作用

标签 javascript html forms safari form-submit

我有一个简单的函数,可以从 HTML 页面创建、附加和提交表单,它适用于除 Safari 之外的所有浏览器。我不明白为什么,非常欢迎任何提示

这是我的功能:

function open(method, url, data, target) {
        var form = document.createElement("form");
        form.action = url;
        form.method = method;
        form.target = target;
        if (data) {
            for (var i = 0; i < data.length; i++) {
                let input = document.createElement("textarea");
                input.name = i.toString();
                input.innerText = data[i];
                form.appendChild(input);
            }
        }
        form.style.display = "none";
        document.body.appendChild(form);
        form.submit();
        form.remove();
    }

    // use example
    var data = ["text1", "text2", "text3", "text4", "text5", "text6"];
    open("POST", "../result.php" , data, "_blank");

Ps:如果可能的话我会避免使用 JQuery

最佳答案

您已设置 target="_blank" 并在脚本加载期间触发该函数(即不是通过点击等用户事件触发该函数)。

由于您尝试在页面加载时打开自动弹出窗口,Safari 会阻止您。

请勿使用 _blank 或等到单击某些内容后再调用函数。

关于Javascript form.submit() 在 Safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46727106/

相关文章:

javascript - rails 5 : Nested forms and existing associated objects

javascript - 在 Angular 应用程序中加载配置数据

javascript - 在不使用computeheading的情况下从Google map URL查找正确的街景

javascript - 如何在本地主机上测试谷歌日历 API v3

Javascript 字符限制和使用 getElementById 调用函数

css - 更改Kohaha表格的样式

html - Rails 在我关闭 do block 的地方添加了一个 </form> 标签,它破坏了我的表单

javascript - 如何在 Angular Material 中固定 mat-select-panel 的位置

html - 100% 宽度行中的不同尺寸图像

javascript - 删除 Div 不起作用