ScrollAll(Greasemonkeyのスクリプト)

GoogleリーダーでHabralentを読みましたが、スクロールすると2〜3ピクセルのブロックがうらやましい規則性で表示され、テープ全体をさらにスクロールすることはできませんでした。 ウィンドウのスクロールバーにマウスを移動する必要があります-もちろん難しいことではありませんが、特に「斜めに」読む場合は迷惑です。 そのため、このような要素をすべて検出し、要素が最後までスクロールされるとスクロールを一時的にブロックするスクリプトが作成されたため、ページを下にスクロールできます。







// ==UserScript==

// @name ScrollAll

// @version 0.4

// @namespace http://zij.habrahabr.ru

// @description ,

// @author ZIJ

// @include http://www.google.com/reader/*

// @include https://www.google.com/reader/*

// ==/UserScript==



// <>

var maxScrolls = 4 // " ",

var hideTime = 4000 // , ms

var checkInterval = 2000 // DOM, ms

// </>



var DOMModified = false

var scrollCount = 0

var lastScrollTop = -1

var lastScrollTime = 0



document .addEventListener( "DOMSubtreeModified" , function () { DOMModified = true }, false )



var I = setInterval(scan, checkInterval)



function scan() { //

if (DOMModified) {

DOMModified = false

for each (element in document .getElementsByTagName( "*" )) {

if (IsScrollable(element)) {

element.addEventListener( "DOMMouseScroll" , handleScroll, false )

}

}

}

}



function IsScrollable(element) { //

if (element.scrollHeight > element.clientHeight) {

with (window.getComputedStyle(element, null )) {

return (overflow == "scroll" ) || (overflow == "auto" )

}

} else return false

}



function handleScroll( event ) { // " "

if ( event .timeStamp != lastScrollTime) {

var newScrollTop = event .currentTarget.scrollTop

if (newScrollTop == lastScrollTop) {

scrollCount++

if (scrollCount >= maxScrolls) {

scrollCount = 0

hideScrollbars( event .currentTarget)

}

} else {

scrollCount = 0

lastScrollTop = newScrollTop

}

lastScrollTime = event .timeStamp

}

}



function hideScrollbars(element) { //

var prev = window.getComputedStyle(element, null ).overflow

element.style.overflow = "hidden"

setTimeout( function () { element.style.overflow = prev }, hideTime)

}




* This source code was highlighted with Source Code Highlighter .








Greasemonkeyはここからダウンロードできます

スクリプトファイル名は.user.jsで終わる必要があります

スクリプトは、GreasemonkeyをオンにしてFFウィンドウにドラッグアンドドロップすることでインストールされます。その後、ページを更新する必要があります



UPD:ドキュメントの変更をより視覚的かつ正確に検証しました



All Articles