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