「MediaWiki:Common.js」の版間の差分
ナビゲーションに移動
検索に移動
Hiratatomotaka (トーク | 投稿記録) 編集の要約なし |
Hiratatomotaka (トーク | 投稿記録) 編集の要約なし |
||
10行目: | 10行目: | ||
console.log("nebula_switch: 閲覧モードです"); | console.log("nebula_switch: 閲覧モードです"); | ||
var parser = new Switch_parser(); | var parser = new Switch_parser(); | ||
if (parser.parse( | if (parser.parse(document.getElementById("nebula_switch"))){ | ||
if (parser.tag_exists){ | |||
console.log( | |||
"nebula_switch: 入れ替えタグの解析に成功しました" | |||
); | |||
}else | |||
console.log("nebula_switch: 入れ替えタグがありません"); | |||
}else | |||
console.log( | console.log( | ||
"nebula_switch: 入れ替えタグが異常です" | "nebula_switch: 入れ替えタグが異常です" | ||
+ parser.failed_message | + parser.failed_message | ||
); | ); | ||
}else | }else | ||
42行目: | 48行目: | ||
} | } | ||
Switch_parser.prototype = { | Switch_parser.prototype = { | ||
constructor: Switch_parser | constructor: Switch_parser, | ||
parse: function(switch_tag){ | |||
// パース成功の真偽値を返却する | |||
if (switch_tag == null){ | |||
this.tag_exists = false; | |||
return true; | |||
} | |||
this.tag_exists = true; | |||
} | |||
}; | }; | ||
2024年5月2日 (木) 09:05時点における版
/* ここにあるすべてのJavaScriptは、すべてのページ読み込みですべての利用者に対して読み込まれます */ function my_switch(){ var uri = new URL(window.location.href); var is_switched = uri.searchParams.get("nebula_switch") != null; if (is_switched){ console.log("nebula_switch: 入れ替え後のページです"); if (is_view_mode(uri)){ console.log("nebula_switch: 閲覧モードです"); var parser = new Switch_parser(); if (parser.parse(document.getElementById("nebula_switch"))){ if (parser.tag_exists){ console.log( "nebula_switch: 入れ替えタグの解析に成功しました" ); }else console.log("nebula_switch: 入れ替えタグがありません"); }else console.log( "nebula_switch: 入れ替えタグが異常です" + parser.failed_message ); }else console.log( "nebula_switch: 閲覧モードでないため、入れ替えは行いません" ); } function is_view_mode(uri){ var view_tab = document.getElementById("ca-view"); if (view_tab) var is_view_mode_selected = view_tab.classList.contains("selected"); else var is_view_mode_selected = false; var is_not_ve_edit_mode = uri.searchParams.get("veaction") == null; return is_view_mode_selected && is_not_ve_edit_mode; } // ES5 なので class 構文は使えない・・・ function Switch_parser(){ if (this === null) throw new TypeError(); console.log("Switch_parser initialized!"); } Switch_parser.prototype = { constructor: Switch_parser, parse: function(switch_tag){ // パース成功の真偽値を返却する if (switch_tag == null){ this.tag_exists = false; return true; } this.tag_exists = true; } }; } my_switch();