アンカーとパラメータ
//アンカーリンク
http://ほげほげ/#hoge
//同アドレスなら
#hoge
//パラメータとアンカーを併用する場合
//「URL + パラメーター + #アンカー」
http://ほげほげ.net/?utm_source=tama#hoge
URL(Uniform Resource Locator)Lがらみ
プロトコル名、ホスト名+ドメイン名、パス(ディレクトリ名、ファイル名),クエリやハッシュ
ttps://www.example.com/audio/list.php?page=2&sort_by=price&utm_source=fout
?パラメータ名=値&パラメータ名=値&…
//絶対パス【absolute path / フルパス】(ファイル名含む)
// paramete for location
let thisurl = location.protocol + '//' + location.host + location.pathname;
ディレクトリ
(ディレクトリのみ)
//ディレクトリ
nJa_.vars.thisdir = location.pathname.substring(0, location.pathname.lastIndexOf('/')) + '/';
相対パス
nJa_.vars.abpath = location.protocol + '//' + location.host + location.pathname.substring(0, location.pathname.lastIndexOf('/')) + '/';
ファイル名・拡張子
nJa_.vars.filename_ex = "";
try {
nJa_.vars.filename_ex = window.location.href.match(".+/(.+?)([\?#;].*)?$")[1];
} catch(e) {
}
nJa_.vars.filename = "";
try {
nJa_.vars.filename = window.location.href.match(".+/(.+?)\.[a-z]+([\?#;].*)?$")[1];
} catch(e) {
}
URL置換
//クエリやパラメータを除いたURL
g$.path = function(url) {
if(!url) url = location.protocol + '//' + location.host + location.pathname;
return url.split(/[?#]/)[0];
}
//ファイル名.拡張子
g$.file = function(url) {
if(!url) url = g$.path();
return url.match(".+/(.+?)([\?#;].*)?$")[1];
}
//ファイル名
g$.filename = function(url) {
if(!url) url = g$.path();
return url.match(".+/(.+?)\.[a-z]+([\?#;].*)?$")[1];
}
//.拡張子
g$.filetype = function(url) {
if(!url) url = g$.path();
let $file = url.match(".+/(.+?)([\?#;].*)?$")[1];
return $file.split('.').pop();
}
//aからbを取り除く
g$.reg = function(b) {
return function(a){
let regExp = new RegExp(b, "g");
return a.replace(regExp,"");
}
}
//ファイル名を含まないURL
g$.dir = function(url) {
if(!url) url = g$.path();
return g$.reg(g$.file(url))(g$.url(url));
}
ユーザーエージェント
// check userAgent nJa_.vars.os / nJa_.vars.ua / nJa_.vars.device / nJa_.vars.browser
nJa_.vars.ua = window.navigator.userAgent.toLowerCase();
if (nJa_.vars.ua.indexOf('iphone') > 0 || nJa_.vars.ua.indexOf('android') > 0 && nJa_.vars.ua.indexOf('mobile') > 0) {
nJa_.vars.device = 'mobile';
} else if (nJa_.vars.ua.indexOf('ipad') > 0 || nJa_.vars.ua.indexOf('android') > 0) {
nJa_.vars.device = 'tablet';
} else {
nJa_.vars.device = 'pc';
}
if(nJa_.vars.ua.indexOf("edge") !== -1 || nJa_.vars.ua.indexOf("edga") !== -1 || nJa_.vars.ua.indexOf("edgios") !== -1) {
nJa_.vars.browser = 'edge';
} else if (nJa_.vars.ua.indexOf("opera") !== -1 || nJa_.vars.ua.indexOf("opr") !== -1) {
nJa_.vars.browser = 'opera';
} else if (nJa_.vars.ua.indexOf("samsungbrowser") !== -1) {
nJa_.vars.browser = 'samsung';
} else if (nJa_.vars.ua.indexOf("ucbrowser") !== -1) {
nJa_.vars.browser = 'uc';
} else if(nJa_.vars.ua.indexOf("chrome") !== -1 || nJa_.vars.ua.indexOf("crios") !== -1) {
nJa_.vars.browser = 'chrome';
} else if(nJa_.vars.ua.indexOf("firefox") !== -1 || nJa_.vars.ua.indexOf("fxios") !== -1) {
nJa_.vars.browser = 'firefox';
} else if(nJa_.vars.ua.indexOf("safari") !== -1) {
nJa_.vars.browser = 'safari';
} else if (nJa_.vars.ua.indexOf("msie") !== -1 || nJa_.vars.ua.indexOf("trident") !== -1) {
nJa_.vars.browser = 'ie';
} else {
nJa_.vars.browser = 'other';
}