1

次のシナリオがあります。

私のページには次のスクリプトがあります。

function GoBackToPreviousPage () {           
   parent.history.back();
   return false;
}

コードビハインドには次のものがあります

If (some conditions are met)
  Page.ClientScript.RegisterStartupScript(this.GetType(), "GoBackToPreviousPage", "GoBackToPreviousPage();", true);

条件が満たされた場合、ページを前のページに戻したいのですが、サーバーではなく JavaScript でこれを行っているのは、(parent.history.back();) が以前のすべての履歴を保持しているためです。ページ

RegisterStartupScript が実行され、ポストバックが発生した後、スクリプトは実行されますが、同じページに留まり、前のページに戻らないことに気付きました

4

1 に答える 1

4

この問題は、javascript 関数の実行前に発生する PostBack によって引き起こされます。ボタンをクリックすると、現在のページがブラウザの履歴に保存されます。そのため、ページがリロードされてスクリプトが実行されると、同じページにいます。したがって、あまりきれいではない解決策は、履歴を 2 ページさかのぼることです。

function GoBackToPreviousPage() {
    window.history.go(-2);
    return false;
}
于 2013-02-21T18:14:48.910 に答える