2 回答

TA贡献2039条经验 获得超8个赞
在演示页面中,他们所做的基本上是:
$(document).ready(function() {
setInterval(function() {
$('#timeOnSiteDuration').html(Tos.secondToDuration((Tos.getTimeOnPage()).timeOnSite + (Tos.getTimeOnPage()).timeOnPage));
}, 1000);
}
他们在 document.ready 中设置了 1 秒的间隔,以使用现场计算时间更新 id='timeOnSiteDuration' 的 'div'。
我认为您可以做的解决方案是这样的:使用 setInterval 并计算现场时间:
Tos.secondToDuration((Tos.getTimeOnPage()).timeOnSite + (Tos.getTimeOnPage()).timeOnPage)
您可以将此 calc 设置为变量或像演示页面一样,直接在 html 中显示。

TA贡献1810条经验 获得超4个赞
除了 Luis 的回答之外,我还可以通过键入以下内容从浏览器控制台获取实时的现场参数:
console.log((Tos.getTimeOnPage()).timeOnSite + (Tos.getTimeOnPage()).timeOnPage);
61(秒)
console.log(Tos.secondToDuration((Tos.getTimeOnPage()).timeOnSite + (Tos.getTimeOnPage()).timeOnPage));
0d 00h 01m 01s(1 分 1 秒)
但是,它应该包含在 1 秒的setInterval()中,以便实时获取站点数据的美好时光。
浏览演示代码后,我知道这仅适用于非 IOS 浏览器,因为 IOS 似乎不支持window.unload事件。
对于 IOS 设备,以下代码块非常适合获取实时现场数据。
$(document).ready(function() {
//Timer module data binding
setInterval(function() {
/*for IOS demo only */
var isIOSDeviceInst = true; // In case it's an IOS browser; set this value dynamically
var IOSPeriodicData;
var dateObj = (new Date());
var currentDayKey = 'TOS_' + (dateObj.getMonth() + 1) + '_' + dateObj.getDate() + '_' + dateObj.getFullYear();
var dataItem = localStorage.getItem(currentDayKey);
if (dataItem) {
IOSPeriodicData = JSON.parse(dataItem);
}
var timeOnSiteIOS;
/*for IOS demo only */
if (isIOSDeviceInst && IOSPeriodicData) {
// > v1.2.0
var timeOnSiteInitIOSDynamic = (Tos.getTimeOnPage()).timeOnSite;
timeOnSiteIOS = (timeOnSiteInitIOSDynamic < Tos.getTimeOnPage().timeOnPage) ? Tos.getTimeOnPage().timeOnPage : timeOnSiteInitIOSDynamic;
$('#timeOnSiteRaw').html(timeOnSiteIOS);
// v1.1.0
// $('#timeOnSiteRaw').html(IOSPeriodicData[0].timeOnSite);
} else {
$('#timeOnSiteRaw').html((Tos.getTimeOnPage()).timeOnSite + (Tos.getTimeOnPage()).timeOnPage);
}
if (isIOSDeviceInst && IOSPeriodicData) {
// > v1.2.0
$('#timeOnSiteDuration').html(Tos.secondToDuration(timeOnSiteIOS));
//v1.1.0
// $('#timeOnSiteDuration').html(Tos.secondToDuration(IOSPeriodicData[0].timeOnSite));
} else {
$('#timeOnSiteDuration').html(Tos.secondToDuration((Tos.getTimeOnPage()).timeOnSite + (Tos.getTimeOnPage()).timeOnPage));
}
}, 1000);
添加回答
举报