我正在制作一个简单的脚本来保存用户访问页面和离开页面时的一些数据,以及其他一些页面详细信息。该脚本“有效”,但并非一直有效。它似乎偶尔工作。我没有收到控制台错误。服务器端工作正常。
window.onload = function() {
var timeStarted, i, c, l, timeLeft, pageData;
timeStarted = new Date().getTime();
i = <?php echo $model->id; ?>;
c = <?php echo $model->cat; ?>;
l= <?php echo $model->loc; ?>;
window.onbeforeunload = function(){
timeLeft = new Date().getTime();
pageData = [{name: 'timeStarted', value: timeStarted},
{name: 'i', value: job},
{name: 'c', value: cat},
{name: 'l', value: loc},
{name: 'timeLeft', value: timeLeft}];
// Set url for JavaSCript
var url = '<?php echo Yii::app()->createUrl("item/viewedItemInformation"); ?>';
<?php echo CHtml::ajax(array(
'url'=>'js:url',
'data'=> "js: pageData",
'type'=>'post',
'dataType'=>'json',
)); ?>;
}
}
笔记
我刚刚阅读了这篇文章window.onbeforeunload not working in chrome,我正在使用 chrome。但是我似乎在 FF 中也得到了相同的结果。
解决这个问题的正确方法是什么?
更新 我真的无法告诉你它在什么情况下起作用和不起作用。我只在项目页面上使用此功能。有时,当我单击一个项目页面并离开访问另一个项目时,它会在其他时候起作用,但它确实是零星的。我能说的是,如果我将项目页面留给像主页这样的非项目页面,则不会记录任何记录。