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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
// INFO //
var INFO =
<plugin name="feedtwitpic.js" version="0.1"
summary="Emulate push anchor of Next or Prev for twitpic."
href="http://github.com/vimpr/vimperator-plugins/blob/master/feedtwitpic.js"
xmlns="http://vimperator.org/namespaces/liberator">
<author email="mitsugu.oyama@gmail.com">Mitsugu Oyama</author>
<license href="http://opensource.org/licenses/mit-license.php">MIT</license>
<project name="Vimperator" minVersion="2.3"/>
<p>Toggle login box of <link topic="http://www.pixiv.net/">pixiv</link> by this plugin. </p>
<item>
<tags>'FeedTwitpic'</tags>
<spec>:FeedTwitpic</spec>
<description>
<p>Emulate push anchor of Next or Prev for twitpic.</p>
</description>
</item>
</plugin>;
commands.addUserCommand(
['FeedTwitpic'],
'Emulate push anchor of Next or Prev for twitpic.',
function(args){
if(1!=args.length){
liberator.echoerr('Usage: FeedTwitpic next|prev');
return false;
}
let contents=gBrowser.selectedBrowser.contentDocument;
if(contents.domain!="twitpic.com"){
liberator.echoerr('This page is not twitpic.');
return false;
}
let evt=contents.createEvent("MouseEvents");
evt.initMouseEvent(
'click',
true, // canBubble
true, // cancelable
window, // view
0, // detail
0, // screenX
0, // screenY
0, // clientX
0, // clientY
false, // ctrlKey
false, // altKey
false, // shiftKey
false, // metaKey
0, // button
null //relatedTarget
);
let targets;
if(args[0]=='next'){
targets=contents.getElementsByClassName('comment_pagination_next');
if(targets.length<1){
liberator.echoerr('Not found Next anchor.');
return false;
}
}else if(args[0]=='prev'){
targets=contents.getElementsByClassName('comment_pagination_prev');
if(targets.length<1){
liberator.echoerr('Not found Prev anchor.');
return false;
}
}else{
liberator.echoerr('Usage: FeedTwitpic next|prev');
return false;
}
targets.item(0).dispatchEvent(evt);
},
{
literal: false
},
true
);
|