2016-03-22 8 views
0

こんにちは私は、更新メッセージ、更新された投稿などのページを更新するためのリフレッシュスクリプトを作成しようとしています。 x、yはex:1を使用して実行されないのはなぜですか?私はページをリロードしてスクロール位置を保持するいくつかの異なる方法を見てきましたが、彼らは過度のように見えます。私はex:2を使いたいと思う、reload()を使ってサーバ側の変数をクリアする論理的な方法があるのだろうか?なぜこのスクリプトはscrollTo(x、y)javascriptを実行しませんか?

function Refresh() 
    { 

     var x = window.pageXOffset; 
     var y = window.pageYOffset; 

     //ex 1:this works but doesnt keep scroll position 
     //window.location = window.location.href; 

     //ex 2: this works and retains x,y but doesnt refresh $_POST $_GET server side variables 
     window.location.reload(); 

     window.location.scrollTo(x,y); 
    } 
    //for testing only 
    setInterval('Refresh()', 5000); 
+2

'reload'を呼び出したり、ブラウザウィンドウをナビゲートすると、次のjavascriptは実行されません。 –

+0

window.scrollTo(...); –

答えて

0

scrollToは実行されません。その行には到達せず、間違っているためです。ページの読み込みをトリガーすると、スクリプトの実行が停止します。さらに、window.locationはアドレスバーを基本的に参照し、scrollToはここで意味をなさない。

リロードはスクロール位置(ほとんどのブラウザで)と$ _GET変数を保持しますが、ブラウザは通常、POST要求をリロードするユーザー確認が必要です。あなたはおそらくその行動を望んでいません。

ブラウザーを新しいコンテンツにスクロールさせるための最小限の方法は、更新されたコンテンツを管理していることを前提として、ハッシュタグを使用しています。 はちょうどあなたのURLに#newcontentのようなものを追加して、新しいコンテンツのIDを設定します。

<div id="newcontent">Cool new post... 

ブラウザが自動的にスクロールfragment identifierに。

関連する問題