此方法基本上在新窗口中打开一个新网页,其中Url有 e.result 参数,这里我想在New Tab中打开相同的窗口而不是在新窗口中。
$("#formMain").attr("action", e.result);
$("#formMain").attr("method", "post");
$("#formMain").attr('target', '_blank');
$("#formMain").submit();
任何建议都将受到高度赞赏
答案 0 :(得分:2)
很遗憾,您无法从JavaScript设置此属性。浏览器根据其设置决定是在新窗口中打开链接还是新选项卡。
答案 1 :(得分:1)
一般来说,将表单提交给用户将看到的页面是不明智的,因为它可能导致多次提交(如果用户前进/后退,他们重新打开选项卡等)。由于您已经使用了jQuery,因此请使用$ .post()或$ .get()。 (参见http://api.jquery.com/jQuery.post/和http://api.jquery.com/jQuery.get/)。位于e.result的脚本应该只处理表单提交(可能将内容保存到数据库中)并返回结果。然后,用户将看到基于该结果的单独页面。
所以你的代码看起来像:
$("#formMain").submit(function() {
return false;
});
function submitForm(url)
$.post(url, $("#formMain").serialize(), function(result) {
window.open('resultPageURL&result='+encodeURIComponent(result), '_blank');
});
}
submitForm(e.result);
显然结果的格式取决于您 - 如果您愿意,您可以轻松返回json对象或结果页面的url,使用:
try {
var obj = $.parseJSON(result);
window.open('resultPageURL&'+JSON.stringify(obj), '_blank');
} catch (e) {
alert('Not a valid JSON result');
}
或
window.open(result, '_blank');
答案 2 :(得分:0)
我有一个来自客户的相同请求,客户希望在新选项卡中打开操作,我们成功地通过将target =“ _ blank”添加到表单属性来成功完成了这项工作,但是在提交表单后,我们遇到了另一个问题。第一次,但是当我们再次单击“提交”按钮时,在寻找解决方案后却没有再次打开购物车页面,我终于为我提出了解决方案。
现在我做了一个jquery,它在经过1秒钟的延迟后在提交按钮表单的新选项卡中打开动作url,此功能就像一个超级按钮。
这是我的点击页面Page Link
我的代码:
jQuery(document).ready(function(){
jQuery('.pagefly-container form').on('submit',function(e){
setTimeout(function () { window.open('https://baaboo.shop/cart','_blank');},1000);});})