1function isMobileDevice() { 2 return /Mobi|Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( 3 navigator.userAgent 4 ); 5} 6if (isMobileDevice()) { 7 document.documentElement.classList.add('is-mobile'); 8} 9 10function isGoogleBot() { 11 const userAgent = navigator.userAgent; 12 const googleBots = [ 13 /Googlebot/i, 14 /AdsBot-Google/i, 15 /Mediapartners-Google/i, 16 /APIs-Google/i, 17 /Google-InspectionTool/i, // Google Inspection Tool 18 /Google-PageSpeed/i, // Google PageSpeed Insights 19 ]; 20 return googleBots.some((bot) => bot.test(userAgent)); 21} 22 23if (isGoogleBot()) { 24 document.documentElement.classList.add('is-bot'); 25} 26 27const htmlElement = document.documentElement; 28const screenWidth = window.innerWidth; 29const screenHeight = window.innerHeight; 30 31htmlElement.setAttribute('data-screen-width', screenWidth); 32htmlElement.setAttribute('data-screen-height', screenHeight); 33htmlElement.setAttribute('data-user-agent', navigator.userAgent);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.