aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorteramako2008-09-20 22:50:08 +0000
committerteramako2008-09-20 22:50:08 +0000
commit0fa07caa7ed4fb10f05b7e9342c07405ff4f3dcc (patch)
treee275eb51cb7e225bf45bb63971b65a606ad3555b
parent1052db6de119d5e9fa064a072ab6d1153621c6f2 (diff)
downloadvimperator-plugins-0fa07caa7ed4fb10f05b7e9342c07405ff4f3dcc.tar.bz2
new
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@19658 d0d07461-0603-4401-acd4-de1884942a52
-rw-r--r--bufferecho.js48
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: