2017-06-19 3 views
0

私はPHPスクリプトに対してPOSTリクエストを行うWebページを持っています。リクエストの結果に応じて、ボタンのonclickイベントは2ページのいずれかにリダイレクトを設定します。URLパラメータのリダイレクトとクリアに失敗したページ

<button id="button" type="submit">Proceed</button> 

... 

$.post('script.php', { 
    key: value 
}, function(result) { 
    if (result != null) { 
    document.getElementById("button").onclick = function() { 
     window.top.location.href = "https://example.com/page?otherkey=othervalue"; 
    } 
    } else { 
    document.getElementById("button").onclick = function() { 
     window.top.location.href = "https://example.com/otherpage?otherkey=othervalue"; 
    }; 
    } 
}); 

これはデスクトップブラウザ上で正常に動作しますが、サファリのiOSの(特にiOSの10.3.2上でテスト)ボタンをクリックすると、ページが更新され、正しいサイトにリダイレクトされません。また、以前に存在していたURLパラメータもすべてクリアされます。たとえば、ボタンを含むページがexample.com/page?key=valueの場合、ページはリフレッシュされ、example.com/page?#_=_になります。私はデバッグとJavascriptコンソールをチェックしようとしましたが、何も言いません。

リダイレクトは、自分のドメイン内のページですが、ボタンが表示されているページはFacebookのアプリページに統合されています(該当する場合)。

また、自分でURLを作成して通常通りにしようとすると、正常に読み込まれます。私はこれを引き起こす可能性があるのか​​分からないので、投稿に値する他の関連情報があるかどうかはわかりませんが、必要に応じてもっと言えることがあります。

答えて

1

Safariは機能で返品虚偽を処理しておりませんが、特に返品が全くありません。私はonsubmit="return function();"をhtml要素に含めます。これは私が推測しているのはフォームです。あなたはまた、$('[the form ID]').submit(function(){ do something here; return false;});を介してsubmit()イベントリスナーに添付します。

+0

これは私の問題を解決するためにはうまくいきませんでしたが、私は解決策を見つけました。私は別の答えを書いたが、応答してくれてありがとう! :) – charlieshades

+0

嬉しい私はアイデアに触発し、問題を直接解決できなかったことを申し訳なく思う –

0

私は十分な詳細を提供していないと思われましたが、問題のボタンが<form>タグ内にあり、ボタン、それはそれを台無しにしていた。この問題を解決するために、私はformを削除しました(どこからでもデータを送信していなかったので、ボタンを使ってページをリダイレクトするだけでした)。今、デスクトップとモバイルブラウザで動作します。

関連する問題