From af27552c72a7870a151ffe2ea58d7d488f609982 Mon Sep 17 00:00:00 2001 From: hogelog Date: Sun, 12 Apr 2009 12:03:35 +0000 Subject: * fix PageLoad action. * fix some page's strange behavior of mnext, mprev. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@32311 d0d07461-0603-4401-acd4-de1884942a52 --- marker_reader.js | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) (limited to 'marker_reader.js') diff --git a/marker_reader.js b/marker_reader.js index 6d13726..020d0d6 100644 --- a/marker_reader.js +++ b/marker_reader.js @@ -10,7 +10,7 @@ var PLUGIN_INFO = {NAME} marker PageDown/PageUp. hogelog - 0.0.2 + 0.0.3 GPL 2.1pre 2.1pre @@ -39,10 +39,7 @@ const HTML_NAMESPACE = "http://www.w3.org/1999/xhtml"; var libly = liberator.plugins.libly; var $U = libly.$U; - -if (liberator.globalVariables.marker_reader_onload !== 0) { - liberator.execute(":autocmd PageLoad .* :minsert", null, true); -} +var logger = $U.getLogger("marker"); var reader = { pageNaviCss: @@ -65,7 +62,7 @@ var reader = { let win = doc.defaultView; doc.naviMarker = true; - let css = $U.xmlToDom(pageNaviCss, doc); + let css = $U.xmlToDom(reader.pageNaviCss, doc); let node = doc.importNode(css, true); doc.body.insertBefore(node, doc.body.firstChild); @@ -84,10 +81,11 @@ var reader = { p.className = "vimperator-marker_reader-marker"; p.style.left = 0; - p.style.top = (pageNum-1)*scroll; + p.style.top = Math.ceil((pageNum-1)*scroll); p.style.zIndex = 1000; doc.body.insertBefore(p, insertPoint); //doc.body.appendChild(p); + markers.push(p); } return doc.markers = markers; }, @@ -106,7 +104,7 @@ var reader = { let markers = doc.markers; let win = doc.defaultView; - var curPos = win.scrollY; + let curPos = win.scrollY; // top of page if (curPos <= 0) return 1.0; @@ -114,17 +112,18 @@ var reader = { // bottom of page if (curPos >= win.scrollMaxY) { if (markers.length > 0) { - let lastMarker = Math.round(parseFloat(markers[markers.length-1].style.top)); + let lastMarker = markers[markers.length-1].offsetTop; if (curPos <= lastMarker) return markers.length; } return markers.length + 0.5; } // return n.5 if between n and n+1 - var page = 1.0; + let page = 1.0; for (let i=0,len=markers.length;i