From f96bc045d9e6b838954a00c4bf22d960b92e17d6 Mon Sep 17 00:00:00 2001 From: hogelog Date: Sun, 12 Apr 2009 11:11:25 +0000 Subject: * insert markers on PageLoad. * add commands: markersinsert, markersremove. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@32310 d0d07461-0603-4401-acd4-de1884942a52 --- marker_reader.js | 134 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 81 insertions(+), 53 deletions(-) (limited to 'marker_reader.js') diff --git a/marker_reader.js b/marker_reader.js index 89626f2..6d13726 100644 --- a/marker_reader.js +++ b/marker_reader.js @@ -10,27 +10,44 @@ var PLUGIN_INFO = {NAME} marker PageDown/PageUp. hogelog - 0.0.1 + 0.0.2 GPL 2.1pre 2.1pre http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/marker_reader.js || +let g:marker_reader_scroll_ratio = "0.7" +||< +mnext, mprev scroll 0.7 * . + +>|| +let g:marker_reader_onload = 0 +||< +prevent PageLoad insert markers action. + +== BUG == + - all marker are inserted at top(0,0) on some page. ]]> ; //}}} -(function() { +plugins.marker_reader = (function() { - const HTML_NAMESPACE = "http://www.w3.org/1999/xhtml"; +const HTML_NAMESPACE = "http://www.w3.org/1999/xhtml"; - let libly = liberator.plugins.libly; - let $U = libly.$U; +var libly = liberator.plugins.libly; +var $U = libly.$U; - let pageNaviCss = - ; - - function insertMarkers(doc) + } + ]]>, + insertMarkers: function(doc) { let win = doc.defaultView; doc.naviMarker = true; @@ -53,10 +69,12 @@ enable setting: let node = doc.importNode(css, true); doc.body.insertBefore(node, doc.body.firstChild); - let scroll_ratio = parseFloat(liberator.globalVariables.marker_reader_scroll_ratio) || 0.7; + let scroll_ratio = parseFloat(liberator.globalVariables.marker_reader_scroll_ratio) || 0.9; let scroll = win.innerHeight * scroll_ratio; let count = Math.ceil(win.scrollMaxY / scroll); + let insertPoint = doc.body.firstChild; + let markers = []; for (let pageNum=1;pageNum<=count+1;++pageNum) { let p = doc.createElementNS(HTML_NAMESPACE, "p"); @@ -68,22 +86,24 @@ enable setting: p.style.left = 0; p.style.top = (pageNum-1)*scroll; p.style.zIndex = 1000; - doc.body.appendChild(p); + doc.body.insertBefore(p, insertPoint); + //doc.body.appendChild(p); } - } - function removeMarkers(doc) + return doc.markers = markers; + }, + removeMarkers: function(doc) { - let xpath = '//*[@class="vimperator-marker_reader-marker"]'; - let markers = $U.getNodesFromXPath(xpath, doc); + let markers = doc.markers; + if (!markers) return false; for (let i=0,len=markers.length;i