5

Javascript /HTMLを使用するWindows8アプリがあり、iframe内にPaypalフォームがあります。

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="on0" value="Pages">
<select name="os0">
    <option value="10">$1.95</option>
    <option value="25">$2.95</option>
</select>
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="encrypted" value="[removed]">
<input type="image" src="/btn_buynow_LG.gif" border="0" name="submit" alt="">
</form>

このフォームは、IE10を含むすべてのブラウザーで完全に機能しますが、Windows 8アプリのiframe内から送信すると、ユーザーはPaypalのホームページに移動します。これは通常、フォームに問題があることを示しています。ホストされているPaypalボタン、暗号化されたボタン、暗号化されていないボタンを試しましたが、すべて同じ動作を示します。Windows 8アプリ内からこのフォームを送信した場合にのみ、Paypal.comのホームページに移動します。

また、すべてのURLを許可されたURLとしてマニフェストに追加しようとしました。

<ApplicationContentUriRules>
<Rule Match="http://example.com" Type="include" />
<Rule Match="http://*.example.com" Type="include" />
<Rule Match="http://paypal.com" Type="include" />
<Rule Match="http://*.paypal.com" Type="include" />
<Rule Match="https://paypal.com" Type="include" />
<Rule Match="https://*.paypal.com" Type="include" />
</ApplicationContentUriRules>

サンドボックス属性を追加/削除して、次のようにプロパティのすべての組み合わせを追加してみました。

<iframe sandbox="allow-same-origin allow-top-navigation allow-forms allow-scripts allow-popups" src="http://example.com/paypalbtn.html"></iframe>

削除するtarget="_blank"と、Windows8アプリは黒い画面に移動してハングします。Altキーを押しながらアプリをシャットダウンする必要があります。別のプロセスの新しいウィンドウへのフォームPOSTに問題があると思います。

Windows 8アプリのiframe内からPaypalを起動するにはどうすればよいですか?

フォームPOSTは必要ですか?フォームGETが機能することに気づきました。

4

3 に答える 3

2

Paypal は、Windows 8 アプリの iframe から起動すると、新しいウィンドウへのフォーム POST をブロックします。その結果、購入注文フォームの代わりに Paypal のホームページが表示されます。

フォーム メソッドを に切り替えてGET使用するだけで、target="_blank"問題なく完全に機能することを確認できます。

 <form action="https://www.paypal.com/cgi-bin/webscr" method="get" target="_blank">

iframe 内でこの問題を回避する別の方法は、テキストまたは画像の周りに標準のアンカー タグを使用し、次のように手動で URL を作成することです。

<a href="https://www.paypal.com/cgi-bin/webscr?custom=[custom info]&item_name=[URL encoded name]&item_number=[num]&amount=9.95&currency_code=USD&cmd=_xclick&business=[paypal email address]&return=[URL encoded URL]">Buy Now</a>

この回答のクレジットは、ボタンではなく Paypal リンクに関するこのページに記載されています。

于 2013-01-03T03:22:08.970 に答える
0

Paypal では iframe のサポートが許可されていないと思います。彼らはおそらくこれを使用します:

X フレーム オプション

これにより、ページが iframe でレンダリングされているかどうかを検出し、そうである場合は読み込みを防止できます..(空白のページを表示することもできます)。

そして、これを回避する方法はありません。

于 2012-12-31T04:56:15.803 に答える