Javascript form.submit() 在 Safari 中不起作用
Javascript form.submit() doesn't work in Safari
我有一个简单的功能,可以从 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
或等到单击某些内容后再调用您的函数。
我有一个简单的功能,可以从 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
或等到单击某些内容后再调用您的函数。