ユーザーがリンクをクリックし、リンク内のページを読んでから戻ってフォームを続行する必要があるセクションが1つある単純なユーザー調査フォームがあります。現在、別のウィンドウ/タブで子 Web ページを開くためのリンクを提供している親 HTML ページがあります。
ユーザーが子ウィンドウ/タブで費やした時間を取得するにはどうすればよいですか?
ユーザーがリンクをクリックし、リンク内のページを読んでから戻ってフォームを続行する必要があるセクションが1つある単純なユーザー調査フォームがあります。現在、別のウィンドウ/タブで子 Web ページを開くためのリンクを提供している親 HTML ページがあります。
ユーザーが子ウィンドウ/タブで費やした時間を取得するにはどうすればよいですか?
次のような方法でユーザーのクリックを聞く
$('a').on('click', function(){
var d = new Date();
var curr_time = d.getTime();
//save in cookie1
})
そして今、ユーザーが読んでいる他のhtmlページで....同じことを行いますが、ウィンドウのアンロード時にのみ
$(window).unload(function(){
var d1 = new Date();
var curr_time1 = d1.getTime();
//save in cookie2
})
これも保存して……
その後、彼女が戻ってきたら、オンフォーカスで、これらの 2 つの Cookie の値を減算し、1000 で割って秒を取得できます。これらの時間はミリ秒単位になるためです。
(cookie1 -cookie2)/1000 seconds //if the cookie thing is used
読み取りページが開いている間は、Cookie または DOM ストレージ値を設定する必要があります。そのページで:
var isFocused = true; // just opened
var secondsLookedupon = 0; // eventually init with a saved value
window.onblur = function(){ isFocused=false; }; // use addEventHandler and co
window.onfocus = function(){ isFocused=true; }; // use addEventHandler and co
window.setInterval(function(){
if (!isFocused) {
secondsLookedupon++;
document.cookie.name = secondsLookedupon; // set a cookie in some way
window.sessionStorage.setItem("name", secondsLookedupon); // or use DOM storage
}
}, 1000);
また、調査フォーム ページから、必要なときにいつでも Cookie または domstorage からその値を読み取ることができます。
ユーザーはリンクをクリックしてページを離れますか、それとも最初のページの中に 2 番目のページが表示されますか? 最初のケースでは、Cookie を使用してクリック時間を保存する必要があります。2 番目のケースでは、変数を使用します。を使用して時刻を取得できますnew Date()
。