ユーザーが一定時間アイドル状態になったら、ページまたは iFrame (どちらでもよい) を更新しようとしています。マウスが実際の iFrame (移動なし) の上にある場合、状態がまだアクティブであると見なされることを確認したいと思います。ブラウザーの別のタブにいて、マウスが動いているかアイドル状態の場合、iFrame を含むタブを引き続き更新したいと思います。
複数のjqueryプラグインやその他のソリューションを使用しようとしましたが、それらはすべて、マウスがiFrameの上にあるときに更新されないことを認識していないようです.
関連する回答 ( https://stackoverflow.com/a/4644315 )の次のコードから始めました。
iFrame のソース例として vimeo.com を使用しています。
<html>
<head>
<title>iFrame AutoRefresh on idle</title>
<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<script>
var time = new Date().getTime();
$(document.getElementById("iFrame1")).bind("mouseover", function(e) {
time = new Date().getTime();
});
function refresh() {
if(new Date().getTime() - time >= 6000)
window.location.reload(true);
else
setTimeout(refresh, 10000);
}
setTimeout(refresh, 10000);
</script>
<style>
body {
margin: 0;
}
</style>
</head>
<body>
<iframe id="iFrame1" src="http://www.vimeo.com/" style="border: 0; width: 100%; height: 100%">Your browser doesn't support iFrames.</iframe>
</iframe>
</body>
</html>