You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress机票网站搜索提交后如何在新标签页打开URL并传递参数

方案1:直接修改现有$.redirect调用(改量最小)

你当前使用的$.redirect是jQuery Redirect插件提供的方法,本身已经支持新开标签页跳转,只需要补充两个参数即可:

  • 第三个参数:请求方式,填POST即可,和你当前默认提交方式保持一致
  • 第四个参数:跳转目标,填_blank就会新开标签页加载内容

你只需要把代码里三处$.redirect调用都按如下格式修改即可:

// 修改前的代码
$.redirect(
  你的URL地址,
  你的参数对象
);

// 修改后的代码
$.redirect(
  你的URL地址,
  你的参数对象,
  "POST",
  "_blank"
);

举个实际的修改示例,往返航班的跳转代码修改后如下:

if (flightType == "rt") {
  $.redirect(
    `${baseUrl}/${fromDestination}/${toDestination}/${fromDate}-${returnDate}/${adultsQty}/${childQty}/${babyQty}/rt`,
    {
      NoOvernightStopover: noOvernightStopover,
      NoAirportChange: noAirportChange,
      PsgrDirect: directFlight,
      FlexDatePOST: timePickup,
      PsgrClass: flightClass,
      PsgrCarrier: selectedAirline,
    },
    "POST",
    "_blank"
  );
} else {
  $.redirect(
    `${baseUrl}/${fromDestination}/${toDestination}/${fromDate}/${adultsQty}/${childQty}/${babyQty}/ow`,
    {
      NoOvernightStopover: noOvernightStopover,
      NoAirportChange: noAirportChange,
      PsgrDirect: directFlight,
      FlexDatePOST: timePickup,
      PsgrClass: flightClass,
      PsgrCarrier: selectedAirline,
    },
    "POST",
    "_blank"
  );
}

多程航班的$.redirect调用也按同样规则补充后面两个参数即可。


方案2:手动实现POST请求新开标签页(无插件依赖)

如果你不想依赖jQuery Redirect插件的参数,可以自己封装一个跳转方法,通过动态创建表单提交到新窗口实现需求,步骤如下:

  1. 先在你的代码任意位置新增这个通用跳转函数:
function postToNewTab(url, data) {
  // 创建临时表单
  const form = document.createElement('form');
  form.method = 'POST';
  form.action = url;
  form.target = '_blank'; // 核心配置:指定提交到新标签页
  // 遍历参数生成隐藏域
  Object.keys(data).forEach(key => {
    const input = document.createElement('input');
    input.type = 'hidden';
    input.name = key;
    input.value = data[key];
    form.appendChild(input);
  });
  document.body.appendChild(form);
  form.submit();
  // 提交后移除临时表单
  document.body.removeChild(form);
}
  1. 把代码里所有的$.redirect调用替换为postToNewTab即可,参数不需要做任何修改。

注意事项

你当前代码有setTimeout延时3秒才执行跳转的逻辑,大部分浏览器的弹窗拦截机制会拦截非用户即时触发的新开窗口,延时超过1秒的跳转被拦截的概率很高。如果出现被拦截的情况,可以把延时时间缩短到1秒以内,或者在用户点击按钮时就先打开一个空白的新标签页,等参数拼接完成后再给这个新标签页赋值跳转地址。

内容的提问来源于stack exchange,提问作者Blerdi Koliq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:18:04