-
Notifications
You must be signed in to change notification settings - Fork 123
/
Copy pathpeekpage.js
63 lines (54 loc) · 1.78 KB
/
peekpage.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
55
56
57
58
59
60
61
62
63
/**
* ==VimperatorPlugin==
* @name peekpage.js
* @description peek page in commandline
* @author hogelog
* @version 0.2
* ==/VimperatorPlugin==
*
* COMMANDS:
* :peekpage {URL} -> Peek URL page in commandline
* :peeksrc {URL} -> Peek URL page source in commandline
*
*/
(function(){
var multilineOutputWidget = document.getElementById('liberator-multiline-output');
var outputContainer = multilineOutputWidget.parentNode;
var option = {
bang: true,
completer: function (context){
var complete = options.complete.replace(/[sS]/g, '');
completion.url(context, complete);
},
literal: 0
};
function peekview(url){
var win = multilineOutputWidget.contentWindow;
var doc = multilineOutputWidget.contentDocument;
var iframe = doc.createElement('iframe');
iframe.src = url;
iframe.width = '100%';
if (outputContainer.collapsed)
doc.body.innerHTML = '';
doc.body.appendChild(iframe);
commandline.updateOutputHeight(true);
win.scrollTo(0, doc.height);
commandline.updateMorePrompt();
win.focus();
modes.set(modes.COMMAND_LINE, modes.OUTPUT_MULTILINE);
}
commands.addUserCommand(['peekpage'],
'Peek Page in Commandline',
function (args){
peekview(args.string || buffer.URL);
}, option);
commands.addUserCommand(['peeksrc'],
'Peek Page Source in Commandline',
function (args){
var http = util.httpGet(args.string || buffer.URL);
if (http){
liberator.echo(http.responseText, commandline.FORCE_MULTILINE);
}
}, option);
})();
// vim: set fdm=marker sw=4 ts=4 et: