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