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

时间:2017-10-13 09:48:46

标签: 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

1 个答案:

答案 0 :(得分:3)

您已设置target="_blank"并在脚本加载期间触发该功能(即不是来自用户事件,如点击)。

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

在调用你的函数之前,不要使用_blank或等到点击某些内容。