javascript:(()=>{if(window.__mg){alert("ジェスチャー待機中");return;}window.__mg=1;let sx,sy;const min=40;const down=e=>{sx=e.clientX;sy=e.clientY;document.addEventListener("mouseup",up,{once:true});};const up=e=>{const dx=e.clientX-sx,dy=e.clientY-sy;cleanup();if(Math.abs(dx)<min&&Math.abs(dy)<min)return;if(Math.abs(dy)>Math.abs(dx)&&dy<0)TEL();if(Math.abs(dy)>Math.abs(dx)&&dy>0)DOM();};const cleanup=()=>{document.removeEventListener("mousedown",down);window.__mg=0;};document.addEventListener("mousedown",down,{once:true});alert("↑ 電話番号検索 / ↓ ドメイン検索");function TEL(){const t=document.body.innerText;const raw=t.match(/[\+0-9][0-9\s\-]{8,20}[0-9]/g)||[];const norm=s=>{let n=s.replace(/\D/g,"");if(n.startsWith("0081"))n="0"+n.slice(4);else if(n.startsWith("81")&&n.length>=11)n="0"+n.slice(2);if(!n.startsWith("0"))return null;return n;};const nums=[...new Set(raw.map(norm).filter(Boolean))];if(!nums.length){alert("電話番号なし");return;}const q=encodeURIComponent(nums.join(" "));open("https://www.google.com/search?q="+q);}function DOM(){const t=document.body.innerText;const m=t.match(/\b(?:[a-z0-9-]+\.)+[a-z]{2,}\b/gi)||[];const dom=[...new Set(m.map(d=>d.toLowerCase()))];if(!dom.length){alert("ドメインなし");return;}const q=encodeURIComponent(dom.join(" "));open("https://www.google.com/search?q="+q);}})();