mobile版scrapboxの判定
2021-01-08 18:48もっと簡単な方法があった
script.jsexport const isMobile = () => /mobile/i.test(navigator.userAgent)
18:34:45 何故かうまく行かないので、別のselectorを使う
undefined
ではなく null
が返ってくるみたい
面倒なので配列の数で比較しよう
18:46:08 .touch-scrollable-container
でもだめか……
deviceをを認識してくれない
DOMのinspecterがみれない?なぜだ?
19:44:10 .mobile-cursor
をみつけた。これを試してみる
19:46:05 成功!
script.js.old(js)export function isMobile() {
//return [...document.getElementsByClassName('drawer-menu')].length > 0;
//return [...document.getElementsByClassName('touch-scrollable-container')].length > 0;
//return document.getElementById('page-item-animation').children.length > 0;
//return document.getElementById('drawer-container') !== null;
// for debug
//const temp = [...document.getElementsByClassName('mobile-cursor')].length > 0;
//console.log(`This is the ${temp ? 'mobile' : 'desktop'} app.`);
return [...document.getElementsByClassName('mobile-cursor')].length > 0;
}
test用code
jsimport {isMobile} from '../script.js';
scrapbox.PageMenu.addMenu({
title: 'isMobile',
image: '/assets/img/logo.png'
});
scrapbox.PageMenu('isMobile').addItem({
title: `This is a ${isMobile()? 'mobile' : 'desktop'} scrapbox.`,
onClick:()=>{},
});