MAKIBISHI anywhere

  • /*
     * @title MAKIBISHI anywhere
     * @description どこでもマキビシ
     * @include http://*
     * @license CC0 1.0
     * @require 
     */
    
    (() => {
      if (document.querySelector('.makibishi')) return;
      //<span class="makibishi"></span>をh1またはh2の末尾に追加
      const h1 = document.querySelector('h1');
      const h2 = document.querySelector('h2');
      const span = document.createElement('span');
      span.classList.add('makibishi');
      if (h1) h1.appendChild(span);
      else if (h2) h2.appendChild(span);
      else return;
      //MAKIBISHIを動的に読み込む
      affixScriptToHead(
        'https://cdn.jsdelivr.net/npm/@nikolat/makibishi@0.1.3',
        () => {
          window.makibishi.initTarget(span);
        },
      );
    
      //https://developer.mozilla.org/ja/docs/Web/API/HTMLScriptElement のコピペ
      function loadError(oError) {
        throw new URIError(
          `スクリプト ${oError.target.src} は正しく読み込まれませんでした。`,
        );
      }
    
      function affixScriptToHead(url, onloadFunction) {
        const newScript = document.createElement('script');
        newScript.onerror = loadError;
        if (onloadFunction) {
          newScript.onload = onloadFunction;
        }
        document.head.appendChild(newScript);
        newScript.src = url;
      }
    })();
    
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2024/08/03 07:34:13 - 08/03