「MediaWiki:Common.js」の版間の差分

提供:WikiNebula
ナビゲーションに移動 検索に移動
編集の要約なし
編集の要約なし
36行目: 36行目:
   }
   }


   var Switch_parser;
   // ES5 なので class 構文は使えない・・・
  function Switch_parser(){
    if (this === null) throw new TypeError();
    console.log("Switch_parser initialized!");
  }
   Switch_parser.prototype = {
   Switch_parser.prototype = {
     constructor: function(){
     constructor: Switch_parser
      if (this === null) throw new TypeError();
      console.log("Switch_parser initialized!");
    }
   };
   };



2024年5月2日 (木) 08:52時点における版

/* ここにあるすべての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 switch_tag = nebula_switch;
      var parser = new Switch_parser();
      if (parser.parse(switch_tag) == false){
        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
  };

}

my_switch();