ユーザーがページを下にスクロールし、リンクをクリックし、必要なことは何でもしてから、リンクのあるページに戻ったときに、同じ (xy) の場所にいるようにしようとしています。以前のブラウザ。それ、どうやったら出来るの?
私はDOM初心者なので、これを行う方法についてあまり知りません。
対象ブラウザ:IE6/7/8、Firefox 2/3、Opera、Safari
追加: 学習を支援するために JQuery というプログラムを使用しています
ユーザーがページを下にスクロールし、リンクをクリックし、必要なことは何でもしてから、リンクのあるページに戻ったときに、同じ (xy) の場所にいるようにしようとしています。以前のブラウザ。それ、どうやったら出来るの?
私はDOM初心者なので、これを行う方法についてあまり知りません。
対象ブラウザ:IE6/7/8、Firefox 2/3、Opera、Safari
追加: 学習を支援するために JQuery というプログラムを使用しています
ユーザーがページ上でクリックした場所の xy 位置を取得するには、次の jQuery コードを使用します。
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
$("#special").click(function(e){
$('#status2').html(e.pageX +', '+ e.pageY);
});
});
</script>
</head>
<body>
<h2 id="status2">
0, 0
</h2>
<div style="width: 100px; height: 100px; background:#ccc;" id="special">
Click me anywhere!
</div>
</body>
</html>
通常、ブラウザは、移動してから戻った場合にページビューポートを保持します(お気に入りのニュースサイトの任意のページで試してください)。これに対する唯一の例外は、キャッシュ設定を調整して、毎回ページを再ダウンロードして再レンダリングする場合です。
それを行わない(つまり、ページがキャッシュされないように設定しない)ことは、おそらく問題を解決するための最も簡単で邪魔にならない方法です。
私が覚えている限り、ビューポートの位置を取得するためのコードはブラウザによって異なるため、ある種のフレームワークを使用する方が簡単です。たとえば、Prototypeには関数document.viewport.getScrollOffsetsがあります(これは1つだと思います)。あなたが求めている)。
ただし、座標を取得することは一部にすぎず、もう一方は後でそれらを使用して何かを行うことになります。この場合、イベントリスナーをwindow.unloadイベントに追加できます。イベントが発生したら、場所をCookieに保存し、後でユーザーがページを再度開いたときに、そのCookieが存在するかどうかを確認し、それに応じてスクロールします。
ユーザーがブラウザの[戻る]ボタンを使用してページにアクセスしたときの場所にユーザーを戻すことだけが気になる場合でも、ほとんどのブラウザはすでにそれを自動的に行っていませんか?
あなたはoffsetLeftとoffsetTopを使うことができます