aboutsummaryrefslogtreecommitdiffstats
path: root/autopagerize_controll.js
diff options
context:
space:
mode:
authorteramako2010-08-26 16:58:13 +0000
committerteramako2010-08-26 16:58:13 +0000
commit0bbf154be57d26508903b8e80641cbc20f27a129 (patch)
tree4ece684e52fe52f9cf955a7906dd872b882892d5 /autopagerize_controll.js
parent63a0c9925e2830b4eb60977656a719d03ea90428 (diff)
downloadvimperator-plugins-0bbf154be57d26508903b8e80641cbc20f27a129.tar.bz2
とりあえずリリース
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@38365 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'autopagerize_controll.js')
0 files changed, 0 insertions, 0 deletions
tp://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); } ); })();