0

を使用して、ウィンドウ内の別のページにフォームを投稿していますwindow.open()。私が抱えている問題は、ウィンドウが開いたときに空白になり、元のブラウザー ウィンドウがポップアップ ウィンドウにあるはずのページにリダイレクトされることです。

これは Chrome では正常に機能しますが、IE では機能しません。

どんな助けでも大歓迎です!ありがとう

*編集*

これは概念的な質問だと思ったので、コードを投稿しませんでした。前に言ったように、他のブラウザでは動作しますが、IE では動作しません。だから私は自分のコードが機能していることを知っています。ただし、コードが必要な場合は、そのサンプルを次に示します。

フォーム:

<form id="SCartFormId">
  <input type="hidden" name="merchantKey" value="E0FU0E14-CC2D-C88N-6TDQ-0A08CCD05610" />
  <input type="hidden" name="orderNumber" value="321654" />
  <input type="hidden" name="descriptor" value="Test Environment" />
  <input type="hidden" name="cart[0].sku" value="V4C3D5C2" />
  <input type="hidden" name="cart[0].name" value="Halls" />
  <input type="hidden" name="cart[0].unitprice" value="100" />
  <input type="hidden" name="cart[0].quantity" value="10" />
  <input type="hidden" name="shippingMethodCollection[0].name" value="USPS" />
  <input type="hidden" name="shippingMethodCollection[0].price" value="200" />
  <input type="hidden" name="descriptor" value="" />            
</form>

ジャバスクリプト:

S.Widgets = {};
S.Widgets.PostWidget = (function(widget){
  var merchantId = widget.merchantId;
  var originForm = widget.orderInput.value;

  var render = (function(target) {var targetHtml = document.getElementById(target),
    button = document.createElement('button'),
    sForm = document.getElementById(originForm);                    

  button.innerText = "Checkout";

  button.onclick = function(){
    window.open('', 'SWidget', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, width=840, height=840');
    sForm.submit();
  };            
  return {
    render: render
  };
});

このボタンは、次のようにオンザフライで作成されます。

new S.Widgets.PostWidget({
  merchantId: 'AEIOU1234AEIOU',
  orderInput: {value: 'SCartFormId'}
}).render("sButtonId");
4

1 に答える 1

1

あなたが説明する原因となる2行のコードは次のとおりです。

// Open a window at URL '' (thus, blank window)
window.open('', 'SWidget', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, width=840, height=840');

// Submit the form (plain submit, no jQuery.ajax)
// I don't see any jQuery on your code
sForm.submit();

これがあなたの望むものかどうかはわかりませんが、フォームのtarget属性を に設定して、行_blankを削除するだけではどうでしょwindow.openうか?

于 2012-10-24T21:04:03.803 に答える