aboutsummaryrefslogtreecommitdiffstats
path: root/marker_reader.js
diff options
context:
space:
mode:
authorhogelog2009-04-18 18:11:50 +0000
committerhogelog2009-04-18 18:11:50 +0000
commitc69f4cb8864345d756ed17b329d9b552ab5591e8 (patch)
tree1f68f920e149dbb5a38ecc82a009578d19f09cca /marker_reader.js
parente0b332c3883ecd46db0004918b166be0adee5a97 (diff)
downloadvimperator-plugins-c69f4cb8864345d756ed17b329d9b552ab5591e8.tar.bz2
* support frame page.
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@32607 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'marker_reader.js')
-rw-r--r--marker_reader.js32
1 files changed, 23 insertions, 9 deletions
diff --git a/marker_reader.js b/marker_reader.js
index b560f88..7ed5ffe 100644
--- a/marker_reader.js
+++ b/marker_reader.js
@@ -10,7 +10,7 @@ var PLUGIN_INFO =
<name>{NAME}</name>
<description>marker PageDown/PageUp.</description>
<author mail="konbu.komuro@gmail.com" homepage="http://d.hatena.ne.jp/hogelog/">hogelog</author>
- <version>0.0.7</version>
+ <version>0.0.8</version>
<license>GPL</license>
<minVersion>2.1pre</minVersion>
<maxVersion>2.1pre</maxVersion>
@@ -54,6 +54,15 @@ let ignorePages = liberator.globalVariables.marker_reader_ignore ||
/^http:\/\/(?:reader\.livedoor|fastladder)\.com\/(?:reader|public)\//];
function near(p1, p2, e) p1-e <= p2 && p2 <= p1+e;
+function focusDocument(win) {
+ let frames = win.frames;
+ if (!frames) return win.document;
+ for (let i=0,len=win.frames.length;i<len;++i) {
+ let doc = win.frames[i].document;
+ if (doc.hasFocus()) return doc;
+ }
+ return win.document;
+}
var reader = {
pageNaviCss:
@@ -73,8 +82,9 @@ var reader = {
insertMarkers: function(doc)
{
let win = doc.defaultView;
+
if (win.scrollMaxY == 0) return false;
- doc.naviMarker = true;
+ if (!win.scrollbars.visible) return false;
let css = $U.xmlToDom(reader.pageNaviCss, doc);
let node = doc.importNode(css, true);
@@ -121,6 +131,7 @@ var reader = {
{
let win = doc.defaultView;
if (win.scrollMaxY == 0) return 1.0;
+ if (!win.scrollbars.visible) return 1.0;
let markers = doc.markers;
if(!markers) markers = reader.insertMarkers(doc);
@@ -187,42 +198,42 @@ if (liberator.globalVariables.marker_reader_mapping) {
[down], "marker PageDown",
function (count)
{
- reader.focusNavi(content.document, count>1 ? count : 1);
+ reader.focusNavi(focusDocument(content), count>1 ? count : 1);
},
{flags: Mappings.flags.COUNT});
mappings.addUserMap([config.browserModes],
[up], "marker PageUp",
function (count)
{
- reader.focusNavi(content.document, -(count>1 ? count : 1));
+ reader.focusNavi(focusDocument(content), -(count>1 ? count : 1));
},
{flags: Mappings.flags.COUNT});
}
commands.addUserCommand(["markersinsert", "minsert"], "insert markers",
function ()
{
- reader.insertMarkers(content.document);
+ reader.insertMarkers(focusDocument(content));
});
commands.addUserCommand(["markersremove", "mremove"], "remove markers",
function ()
{
- reader.removeMarkers(content.document);
+ reader.removeMarkers(focusDocument(content));
});
commands.addUserCommand(["markernext", "mnext"], "marker PageDown",
function ()
{
- reader.focusNavi(content.document, 1);
+ reader.focusNavi(focusDocument(content, 1));
});
commands.addUserCommand(["markerprev", "mprev"], "marker PageUp",
function ()
{
- reader.focusNavi(content.document, -1);
+ reader.focusNavi(focusDocument(content, -1));
});
if (liberator.globalVariables.marker_reader_onload !== 0) {
function autoInsert(win)
{
- if (win.frameElement) return;
+ //if (win.frameElement) return;
let uri = win.location.href;
if (ignorePages.some(function(r) r.test(uri))) return;
let doc = win.document;
@@ -231,6 +242,9 @@ if (liberator.globalVariables.marker_reader_onload !== 0) {
reader.removeMarkers(doc);
reader.insertMarkers(doc);
+
+ let frames = win.frames;
+ for (let i=0,len=frames.length;i<len;++i) autoInsert(frames[i]);
}
function onResize(event)
{