aboutsummaryrefslogtreecommitdiffstats
path: root/asdfghjkl.js
diff options
context:
space:
mode:
authoranekos2009-02-04 13:30:41 +0000
committeranekos2009-02-04 13:30:41 +0000
commit87273259825c1d137bc1e280867a7853302c299b (patch)
tree1533d7342eb72cae48a232fbac4ae24cfd1d9b7a /asdfghjkl.js
parentf4761cd19f9de338d73e788abb6c80896588db2f (diff)
downloadvimperator-plugins-87273259825c1d137bc1e280867a7853302c299b.tar.bz2
PLUGIN_INFO 修正
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@29543 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'asdfghjkl.js')
0 files changed, 0 insertions, 0 deletions
class="c1">// :ropen ddd // move to http://example.com/aaa/bbb/cccddd // :ropen ./ddd // move to http://example.com/aaa/bbb/ccc/ddd // :ropen ../ddd // move to http://example.com/aaa/bbb/ddd // :ropen ../../ddd // move to http://example.com/aaa/ddd // :ropen /fuga // move to http://example.com/ddd (function (){ function trim_query(url){ var _r; var res = (_r = url.match(/^.*(?=\?)/)) ? _r[0] : url; res = (_r = res.match(/^https?:\/\/.*(?=https?:\/\/)/)) ? _r[0] : res; res = (_r = url.match(/^.*(?=#)/)) ? _r[0] : res; return res; } function open_path(path, tab){ var win = window.content.window; var loc = win.location; var splited_path = path.split(/\/+/); var up = 0; if(!tab){ tab = liberator.CURRENT_TAB; } switch(splited_path[0]){ case ".": up = -1; break; case "..": while(splited_path[up] == "..") up++; break; case "": up = -2; break; default: break; } var url, base; switch(up){ case -2: // "/hoge" base = loc.protocol + "//" + loc.hostname; url = base + path; break; case -1: // "./hoge" base = trim_query(loc.href); path = path.substring(2); if(base[base.length-1] == "/") url = base + path; else url = base + "/" + path; break; case 0: // "hoge" url = loc.href + path; break; default: // "../../hoge" base = trim_query(loc.href); let c = 0; while(c < up){ if(c > 0) base = base.substr(0, base.length-1); [base] = base.match(/^.*\/(?=[^\/]*$)/); path = path.substring(3); c++; } url = base + path; break; } liberator.open(url, tab); } commands.addUserCommand( ["ro[pen]"], "Open relative URL in the current tab", open_path ); commands.addUserCommand( ["rt[abopen]"], "Open relative URL in a new tab", function(path){ open_path(path, liberator.NEW_TAB); } ); })();