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);
添加回答
舉報