From 0126d5816c8bd6a465e1938e48910b15a5ca39f3 Mon Sep 17 00:00:00 2001
From: hogelog
Date: Sun, 19 Apr 2009 01:16:52 +0000
Subject: * fix bug: window infinite loop if (win.innerHeight == 0).
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@32618 d0d07461-0603-4401-acd4-de1884942a52
---
marker_reader.js | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
(limited to 'marker_reader.js')
diff --git a/marker_reader.js b/marker_reader.js
index 7ed5ffe..20b75a0 100644
--- a/marker_reader.js
+++ b/marker_reader.js
@@ -10,7 +10,7 @@ var PLUGIN_INFO =
{NAME}
marker PageDown/PageUp.
hogelog
- 0.0.8
+ 0.0.10
GPL
2.1pre
2.1pre
@@ -84,6 +84,7 @@ var reader = {
let win = doc.defaultView;
if (win.scrollMaxY == 0) return false;
+ if (win.innerHeight == 0) return false;
if (!win.scrollbars.visible) return false;
let css = $U.xmlToDom(reader.pageNaviCss, doc);
@@ -94,7 +95,6 @@ var reader = {
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)
{
@@ -110,8 +110,7 @@ var reader = {
p.style.left = "0px";
p.style.top = Math.ceil((pageNum-1)*scroll)+"px";
- doc.body.insertBefore(p, insertPoint);
- //doc.body.appendChild(p);
+ doc.body.appendChild(p);
markers.push(p);
}
return doc.markers = markers;
@@ -135,6 +134,7 @@ var reader = {
let markers = doc.markers;
if(!markers) markers = reader.insertMarkers(doc);
+ if(!markers && markers.length==0) return 1.0;
let curPos = win.scrollY;
@@ -165,8 +165,7 @@ var reader = {
{
function navi(win, page)
{
- let xpath = '//*[@id="vimperator-marker_reader-' + page + '"]';
- let [elem] = $U.getNodesFromXPath(xpath, doc);
+ let elem = doc.getElementById("vimperator-marker_reader-" + page);
if (elem) {
win.scrollTo(0, elem.offsetTop);
return true;
--
cgit v1.2.3