ページ内の全てのスクロールバーを一番上に移動する
はじめに
「Firefoxにて,ページ内の全てのスクロールバーを一番上に移動したい」という状況が生じたのでメモ.
方法を簡単に言うと,ページ内の全てのDOM要素についてscrollTop要素が無いかチェックし,もしあれば0を代入する.
※今回用いるevaluateメソッドは,firefox以外では使えないので注意.
やりかた
//XPathを用いて,ページ内DOM要素を全取得(ただし,返り値はイテレータ) let xpathResult = document.evaluate("//*",document,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null); //各DOM要素を巡回し,もしscrollTopプロパティがあれば一番上に let itr = xpathResult.iterateNext(); while(itr) { if(itr.scrollTop) { itr.scrollTop = 0; } itr = xpathResult.iterateNext(); }
evaluateにてscrollTopプロパティを持つ要素のみを取得したかったけれど,やり方が分からなかった…
もしご存知の方いらっしゃったら教えて下さいm(_ _)m