diff options
author | teramako | 2008-09-20 22:50:08 +0000 |
---|---|---|
committer | teramako | 2008-09-20 22:50:08 +0000 |
commit | 0fa07caa7ed4fb10f05b7e9342c07405ff4f3dcc (patch) | |
tree | e275eb51cb7e225bf45bb63971b65a606ad3555b /bufferecho.js | |
parent | 1052db6de119d5e9fa064a072ab6d1153621c6f2 (diff) | |
download | vimperator-plugins-0fa07caa7ed4fb10f05b7e9342c07405ff4f3dcc.tar.bz2 |
new
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@19658 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'bufferecho.js')
-rw-r--r-- | bufferecho.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/bufferecho.js b/bufferecho.js new file mode 100644 index 0000000..18e2eee --- /dev/null +++ b/bufferecho.js @@ -0,0 +1,48 @@ +/** + * ==VimperatorPlugin== + * @name bufferecho.js + * @description Display results of JavaScript to a buffer(browser) instead of commandline-buffer + * @description-ja JavaScript実行結果をコマンドライン・バッファではなくバッファ(ブラウザ)に表示 + * @version 0.1a + * ==/VimperatorPlugin== + */ +liberator.plugins.buffer_echo = (function(){ +var title = "bufferecho results"; +var prefix = 'data:text/html,'; +function execute(str){ + var result; + try { + result = (function(){ return window.eval("with(liberator) {" + str + "}") })(); + } catch (e) { + result = e.name + ":\n" + e.message; + } + return result; +} + +liberator.commands.addUserCommand(['bufferecho','becho'],'Display results of JavaScript to a buffer(browser)', + function(args, special){ + liberator.plugins.buffer_echo.open(args, special); + },{ + completer: function(filter) liberator.completion.javascript(filter) + },true +); +var manager = { + append: function(htmlString){ + var body = liberator.buffer.evaluateXPath('/html/body').snapshotItem(0); + body.innerHTML += htmlString; + }, + open: function(str, forceNewTab) { + var result = execute(str); + if (typeof(result) == "object") result = liberator.util.objectToString(result,true); + var data = '<div><h1>' + str + '</h1><pre>' + result + '</pre></div>'; + if (liberator.buffer.title == title && !forceNewTab){ + this.append(data); + return; + } + var where = liberator.buffer.URL == "about:blank" ? liberator.CURRENT_TAB : liberator.NEW_TAB; + liberator.open([prefix + '<title>'+title+'</title>' + data], where); + } +}; +return manager; +})(); +// vim:sw=4 ts=4 et: |