33

Chrome を前後に移動させる 2 本指のスワイプを無効にしたい。特に保存しないと、ユーザーが作業の進行状況を失う可能性がある Web サイトがあります。

私は使用してみwindow.onbeforeunloadましたが、URLにハッシュがあるとうまくいかないようです(www.example.com/work/#step1#unsaved www.example.com/work/#step0の間で戻ると変わります)とイベントは発生しないようです。

別のソリューションに切り替えようとしていましたが、今日、Google ドキュメントで完全に無効になっていることに気付きました。彼らはどのようにそれを達成しましたか?

4

10 に答える 10

71

Chrome の 2 本指の前後スワイプを無効にする

これは私のために働いた:

body {
  overscroll-behavior-x: none;
}
于 2019-05-10T06:32:30.473 に答える
11

特定のページをデフォルトで新しいタブ/ウィンドウで開くようにします (ハイパーリンクに target="_blank"> を入れることにより)。そうすれば、戻る前のページがなくなります。

または、デフォルトで水平スクロールを防止します。これを行うには、jquery.mousewheel を使用して次のことを行うことができます。

$(document).on("mousewheel",function(event,delta){ 
  // prevent horizontal scrolling
  if (event.originalEvent.wheelDeltaX !== 0) {
    event.preventDefault();
  } 
});
于 2013-06-10T19:13:05.620 に答える
1

アドレスバーに chrome://flags と入力し、「オーバースクロール履歴ナビゲーション」に移動して、ドロップダウンから「無効」に設定することで、無効にすることができました。

于 2014-02-13T08:28:31.017 に答える
-4

あなたは間違ったレベルで問題を見ています。ブラウザーの観点からは何もアンロードされていないため、OnBeforeUnload は単にトリガーされません。したがって、率直に言って、バージョン管理の間違ったメカニズムを実装しました。フラグメントは、現在使用しているドキュメントの状態ではなく、ページの状態用です。

ハッシュ フラグメントを介して状態を維持することを主張する場合は、別のメカニズムを使用して、ページの状態が変化しないようにする必要があります。現在のブラウザはすべて LocalStorage をサポートしているので、私はそれを使用します。そして、それを行っている間、すべてのドキュメント状態データを URL ではなくそこに配置します。それが Google ドキュメントのやり方であり、この問題が発生しない理由です。

于 2013-04-12T19:50:57.130 に答える