您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Calculates basic TRIMP score
// ==UserScript== // @name Garmin Connect Basic Training Impulse (TRIMP) // @namespace http://users.pandora.be/divvy/userscript/ // @description Calculates basic TRIMP score // @include https://connect.garmin.com/modern/activity/* // @version 0.0.1.20171209095325 // ==/UserScript== function to_minutes(text) { var s = 0; // seconds var a = text.split(':').reverse(); // reverse to start with seconds while (a.length) s = ((s * 60) + parseInt(a.pop(), 10)); return Math.trunc(s / 60); // convert to minutes } function add_trimp() { var hr_elem = document.getElementById('heartRateStatsPlaceholder'); var time_elem = document.getElementById('timingStatsPlaceholder'); var small_stats_elem = document.getElementById('activitySmallStatsViewPlaceholder'); if (document.getElementById('basic-trimp') != undefined) return; if ((hr_elem != undefined) && (time_elem != undefined) && (small_stats_elem != undefined)) { var avg_hr = parseInt(hr_elem.getElementsByClassName('data-bit')[0].innerText.split(' ')[0], 10); var minutes = to_minutes(time_elem.getElementsByClassName('data-bit')[0].innerText); var basic_trimp = avg_hr * minutes; var div; var e; div = document.createElement('div'); div.id = 'basic-trimp'; div.className = 'data-block large'; small_stats_elem.getElementsByClassName('data-block large')[0].parentElement.appendChild(div); e = document.createElement('div'); e.className = 'data-bit'; e.innerText = basic_trimp; div.appendChild(e); e = document.createElement('span'); e.className = 'data-label'; e.innerText = 'Basic TRIMP'; div.appendChild(e); } } // try to add TRIMP each time the document changes document.addEventListener('DOMNodeInserted', add_trimp, false);