■ 最新の投稿

ブラウザ:ブックマークをオリジナルボタン化!~JavaScriptを使い、見ているWebページの数字を全部動物に変換する

ブラウザのブックマークは、URLだけでなく JavaScriptも登録できるのを知っていますか?これを使うと、クリックするだけで処理が動く「自分専用ボタン」が作れます。

今回は、見ているWebページの”数字”をすべて動物に変換してしまうボタンを作ります。

仕組み:ブックマークレット(Bookmarklet)

ブックマークのURL欄に javascript: ... を入れておくと、
そのブックマークをクリックした瞬間に JavaScript が実行されます。

次の JavaScript を使います。長いですが 1行で書かれた JavaScript です。

JavaScript:

javascript:(()=>{let id="__bm_anim10__";let s=document.getElementById(id);if(s){s.remove();try{window.__bm_a10_w&&window.__bm_a10_w.forEach(n=>{n.parentNode&&n.parentNode.replaceChild(document.createTextNode(n.textContent),n)});window.__bm_a10_w=null}catch(e){}return}s=document.createElement("style");s.id=id;document.head.appendChild(s);let map={0:"🐱",1:"🐶",2:"🐰",3:"🐻",4:"🐼",5:"🐨",6:"🐯",7:"🦊",8:"🐮",9:"🐸"};let w=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,{acceptNode:n=>{if(!n.nodeValue||!/\d/.test(n.nodeValue))return NodeFilter.FILTER_REJECT;let p=n.parentElement;if(!p)return NodeFilter.FILTER_REJECT;let t=p.tagName;if(/^(SCRIPT|STYLE|TEXTAREA|INPUT|CODE|PRE)$/.test(t))return NodeFilter.FILTER_REJECT;return NodeFilter.FILTER_ACCEPT}});let ns=[],n;while(n=w.nextNode())ns.push(n);let wraps=[];ns.forEach(tn=>{let v=tn.nodeValue;let parts=v.split(/(\d)/);if(parts.length===1)return;let frag=document.createDocumentFragment();let hit=false;for(let i=0;i<parts.length;i++){let p=parts[i];if(p==="")continue;if(i%2===1){let sp=document.createElement("span");sp.textContent=map[p]??p;frag.appendChild(sp);wraps.push(sp);hit=true}else frag.appendChild(document.createTextNode(p))}if(hit&&tn.parentNode)tn.parentNode.replaceChild(frag,tn)});window.__bm_a10_w=wraps})();
数字動物
0🐱
1🐶
2🐰
3🐻
4🐼
5🐨
6🐯
7🦊
8🐮
9🐸

手順:

① どんなページでもいいので、いったんお気に入りに登録する。

② 登録したお気に入りを右クリックして、「編集」をクリック。

③ 先ほど紹介した JavaScript をコピーする。

④ 名前を「数字を動物変換」にして、URL欄に JavaScript を貼り付ける。

これで完成です。

たとえば、、Yahoo!Japanのページを開いた状態でお気に入りをクリックすると

数字が動物に変わります!

JavaScriptで遊んでいるだけですが、数字を隠したいシチュエーションで、実務でも使えるかも?(笑)


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です