15

水平スクロール時に前後に移動するためにJQueryまたはネイティブJSを使用して最新のブラウザのデフォルト機能を無効にするにはどうすればよいですか?

これは通常、トラックパッドを使用しているとき、およびスクロール可能な div の最後または最初にスクロールしたときに発生します。

4

5 に答える 5

22
history.pushState(null, null, location.href);
window.onpopstate = function(event) {
    history.go(1);
};

デモ: http://jsfiddle.net/DerekL/RgDBQ/show/

戻るボタンをスパムするか、戻るボタンを押したまま前のエントリを選択しない限り、前の Web ページに戻ることはできません。

注: onpopstate(または event onbeforeunload) は iOS では動作しないようです。

于 2013-04-24T03:51:09.017 に答える
7

だから私はWebアプリを作成したので、保存されていない変更をユーザーが失ったり、ブラウザの履歴の前または次のページに行き着いたりするのを遅らせるために、保存されていない変更をユーザーに促してみませんか.

私が行ったように、他の誰かがこの問題に遭遇した場合の解決策は次のとおりです。

window.onbeforeunload = function(e) {
    return 'Ask user a page leaving question here';
}; 
于 2013-04-25T00:43:32.580 に答える
5

Mac を使用している場合、これはトラック パッド ジェスチャが原因です。

System Preferences -> Trackpad -> More Gestures. 

探している JS ソリューションではありませんが、自分で防止したい場合は、機能をオフにすることができます。

于 2013-04-24T03:51:18.730 に答える