You need to enable JavaScript to run this app. JavaScript自动提交PayPal表单开新窗口 如何改为同窗口跳转
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript自动提交PayPal表单开新窗口 如何改为同窗口跳转

PayPal自动提交表单跳转问题修复方案

根因定位

  • 表单提交后自动打开新窗口的核心原因是表单标签上的target="PayPal"属性。该属性用于指定表单提交后响应内容的加载目标,传入自定义窗口名称时,浏览器会自动新建对应名称的独立窗口/标签页加载跳转结果,而非复用当前窗口。
    原有自动提交的JS逻辑无需调整,问题完全出在表单的target属性配置上

修复操作

二选一即可:

  1. 直接删除<form>标签上的target="PayPal"属性,表单默认会在当前窗口完成提交跳转
  2. 显式将target属性值改为_self,明确指定使用当前窗口加载跳转结果

修复后代码示例

原有JS代码无需修改

window.onload = function() {
  // u should put a name for your form
  document.forms['my_form'].submit();
}

修改后的HTML表单代码

<!-- 方案1:删除target属性 -->
<form id="my_form" action="https://www.paypal.com/cgi-bin/webscr" method="post" style="margin:0;padding:0;">
  <input type="hidden" name="business" value="test@yahoo.com">
  <input type="hidden" name="cmd" value="_xclick">
  <input type="hidden" name="item_name" value="Membership">
  <input type="hidden" name="item_number" value="1 Month">
  <input type="hidden" name="amount" value="23">
  <input type="hidden" name="currency_code" value="USD">
  <input type="hidden" name="shipping" value="">
  <input type="hidden" name="shipping2" value="">
  <input type="hidden" name="handling" value="">
  <input type="hidden" name="return" value="https://test.com/Successful_Payment.php">
  <input type="hidden" name="cancel_return" value="">
  <input type="hidden" name="undefined_quantity" value="0">
  <input type="hidden" name="receiver_email" value="test@yahoo.com">
  <input type="hidden" name="no_shipping" value="1">
  <input type="hidden" name="no_note" value="0">
</form>

<!-- 方案2:将target值改为_self -->
<!-- <form target="_self" id="my_form" action="https://www.paypal.com/cgi-bin/webscr" method="post" style="margin:0;padding:0;">
  其余input标签内容与原有代码完全一致
</form> -->

内容的提问来源于stack exchange,提问作者Auref Pourkarimi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 17:06:03