1

次のコードを使用して、IE8 の戻るボタンを無効にしたアプリケーションがあります。

window.history.forward();
function noBack() {

    window.history.forward();
}

このコードはページを戻し、再びページを進めます。テキストボックスを読み取り専用にするページの onload 関数を呼び出しました。次のコードを使用して読み取り専用にしました。

$("#IDofTheTextBox").attr('readonly',true);

しかし、テキストボックスを選択して「BackSpace」ボタンを押して編集しようとすると、IEの戻るボタンが呼び出され、読み取り専用だったテキストボックスが読み取り専用ではなくなります。誰でもこの問題を解決する方法を教えてもらえますか?

4

3 に答える 3

4

答えは単純に「NO」です

ユーザーが自分の作業を失うのを防ごうとしている場合は、次のようなことを試してください。

window.onbeforeunload = function() { return "Are you sure want to leave this page?."; };
于 2013-02-23T07:01:16.750 に答える
2
function changeHashOnLoad() {
     window.location.href += "#";
     setTimeout("changeHashAgain()", "50"); 
}

function changeHashAgain() {
  window.location.href += "1";
}

var storedHash = window.location.hash;
window.setInterval(function () {
    if (window.location.hash != storedHash) {
         window.location.hash = storedHash;
    }
}, 50);

上記のjavascript関数をjsファイルに追加し、onloadで関数を呼び出しますchangeHashOnLoad().

IE8では正常に動作します。私はちょうどそれをテストしました。

于 2013-02-23T07:59:55.543 に答える
0

あなたのページが何をしようとしているのかわかりません...しかし、これが私たちがしていることです:

ブラウザーのボタンを有効にしたくないという評価があります...ユーザーが次へ/戻るなどを押したときに ajax/ロジックを実行するためです (入力に基づいて次に表示するものを決定するため)。戻るボタンと進むボタンは、そのプロセスを混乱させる可能性があります。

そのため.....ユーザーに新しいウィンドウで評価を開いてもらうため、戻るボタンは既に無効になっています...(新しいウィンドウには以前の履歴はありません)。次に、次へ/戻るボタンは window.location.replace(url); を使用します。これにより、履歴項目が作成されなくなります。したがって、戻る/進むボタンが有効になることはなく、次へ/前へのボタンを使用してツールをナビゲートする必要があります。

私が提供した例のようなものの外側にあるボタンをいじろうとはしません。

于 2013-11-07T22:17:02.447 に答える