В JS обычно очень просто открыть новое окно. Опен (URL); Просто иди.
Но так как я хочу передать параметры на сервер, а параметры выглядят как длинная строка, а длина параметров коммита в методе GET ограничена, у меня есть следующие требования:
1. Реализовать отправку после JS
2. Возвращенная страница отображается в новом окне
Прежде всего, я сделал это:
Кода -копия выглядит следующим образом:
$ .ajax ({
Тип: "post",
url: '$ {contextPath}/analyse/detail.do',
Данные: {carnum: carnum, ids: refis},
Успех: function (str_response) {var obj = window.open ("about: blank");
obj.document.write (str_response);
}
});
Представленные через jquery ajax, возвращаемые данные записаны на новой странице, но поскольку браузер будет перехватывать автоматическое всплывающее окно, пользователю все еще нужно не заинтересовать его, и пользовательский опыт очень плохой.
Затем я понял, издеваясь над подчинением формы
Кода -копия выглядит следующим образом:
функция post (url, params) {var temp_form = document.createElement ("form");
temp_form .action = url;
temp_form .target = "_blank";
temp_form .method = "post";
temp_form .style.display = "none"; for (var x in params) {var opt = document.createElement ("textarea");
opt.name = x;
opt.value = params [x];
temp_form .appendchild (opt);
}
document.body.appendchild (temp);
temp_form .submit ();
}
Примечание. Если вы хотите установить целевое свойство вновь открытой формы окна в «_blank»
Затем запрос post ('$ {contextpath}/analyse/detail.do', {carnum: carnum, ids: refis});