forked from vimpr/vimperator-plugins
-
Notifications
You must be signed in to change notification settings - Fork 1
/
autoIgnoreKey.js
54 lines (48 loc) · 1.69 KB
/
autoIgnoreKey.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/**
* Auto switch Vimperator key navigation
*
* @author teramako teramako@gmail.com
* @author halt feits <halt.feit at gmail.com>
* @version 0.6pre
*/
(function(){
/**
* String or RegExp
* e.g)
* * /^https?:\/\/mail\.google\.com\//
* * 'http://reader.livedoor.com/reader/'
*
* The autoignorekey_pages is a string variable which can set on
* vimperatorrc as following.
*
* let autoignorekey_pages = "['http://example.com/*', 'http://example.org/*']"
*
* or your can set it using inline JavaScript.
*
* javascript <<EOM
* liberator.globalVariables.autoignorekey_pages = uneval([
* /^https?:\/\/mail\.google\.com\//,
* /^https?:\/\/www\.google\.com\/reader\//,
* ]);
* EOM
*/
const ignorePagesList = window.eval(liberator.globalVariables.autoignorekey_pages) || [
/^https?:\/\/mail\.google\.com\//,
/^http:\/\/(?:reader\.livedoor|fastladder)\.com\/(?:reader|public)\//,
].map(function(i)
i instanceof RegExp ? i :
i instanceof Array ? new RegExp(String(i[0]), String(i[1])) :
new RegExp("^" + String(i).replace(/\s+/g, "")
.replace(/[\\^$.+?|(){}\[\]]/g, "\\$&")
.replace(/(?=\*)/g, ".")
+ "$", "i"));
document.getElementById('appcontent').addEventListener('DOMContentLoaded',passAllKeysIfTarget,false);
getBrowser().mTabBox.addEventListener('TabSelect',passAllKeysIfTarget,false);
function passAllKeysIfTarget() {
var uri = content.document.documentURI;
liberator.modules.modes.passAllKeys = isMatch(uri);
//liberator.log('load page: ' + gBrowser.selectedBrowser.contentDocument.URL);
}
function isMatch(uri) ignorePagesList.some(function(e) e.test(uri))
})();
// vim:sw=4 ts=4 et: