UserScriptをoffにして開く
URL parameterにnoscript=trueを渡すと、UserScriptを読み込まないでScrapboxを立ち上げるようにするUserScript
動機
takker.iconのUserScriptは読み込み時に大量のAPIを一気に叩くというはた迷惑な仕組みになっている
window.open()などで一時的にScrapboxを開くときは叩く必要のないAPIとかがあったりするのだが、それらも常に叩かれてしまう
e.g. emoji-completion
そこで、Scrapbox pageを開くときにUserScriptの読み込みを制御したいと思った
目的
Scrapboxの起動時にUserScriptの挙動を変えられるようにする
使い方
scrapbox-url-parametersを使う
UserScripをOFFにするcode
code:js
import {selfURLParameters} from '/api/code/takker/scrapbox-url-parameters/script.js';
// これ以降のscriptを読み込まない
if (selfURLParameters.get('noscript') === 'true') {
console.info('scrapbox-url-parameters No script mode');
// これ以降のscriptを読み込まない
} else {
import('/api/code/takker/script-page/script.js');
// 順番にscriptを読み込みたいとき
(async () => {
await import('/api/code/your-project/first-script-page/script.js');
await import('/api/code/your-project/second-script-page/script.js');
await import('/api/code/your-project/third-script-page/script.js');
// ...
})();
}
scrapbox-url-parametersは全てのURL parameterを取得できるので、別のparameterを使ってUserScriptの挙動を変化させることもできる
e.g. ?verbose=trueを渡すとUserScriptのconsole.log()出力を有効にする
/icons/hr.icon
URL parameterを用いて、Userscriptのon/offを切り替えられないかなーって思ったtakker.icon
2021-01-03 08:26:56 window.location.searchでURL parameterを取得できた!
行けそう!
#2021-01-03 08:26:50
#2021-01-02