見出し画像

コピペするだけ!簡単「ポケベル気分」

ポケベル使ってたよ!ってかた、50代以上になるでしょうか。
40代のかたでも使っていたかたいらっしゃるのかな?

そう言えばそんなものあったっけな、と、たまーに思い出します。


読ませて頂いた記事をマガジンに追加させて頂いております。

伺った際にはマガジンへの登録をさせて頂いていきますが、それはやめてほしいなどありましたら、DM / コメントで一言頂けましたら幸いです😊


ブックマークに置いとくだけ!

コピペするだけの簡単小道具!

Geminiで簡単!ツール作成!

一発作成プロンプトも紹介!


もちろんポケベルを作れるわけがない。
データの送信だって、バックエンドが必要なので作らない。
だけど、気分だけ味わうものなら簡単だよね。
と、いつものようにGeminiさんへぶん投げる!


11と押すと「あ」、54と押すと「ね」!

子音と母音を番号で組み合わせる!

なんとなくこんな感じで使ってたよね!を体験するだけ!

ただただ懐かしむだけ、ポケベル気分!


プロンプトから抜粋!変換テーブル

- 変換テーブル例(基本50音): 11=あ, 12=い, 13=う, 14=え, 15=お 21=か, 22=き, 23=く, 24=け, 25=こ 31=さ, 32=し, 33=す, 34=せ, 35=そ 41=た, 42=ち, 43=つ, 44=て, 45=と 51=な, 52=に, 53=ぬ, 54=ね, 55=の 61=は, 62=ひ, 63=ふ, 64=へ, 65=ほ 71=ま, 72=み, 73=む, 74=め, 75=も 81=や, 83=ゆ, 85=よ 91=ら, 92=り, 93=る, 94=れ, 95=ろ 01=わ, 02=を, 03=ん, 88=濁点(゛), 99=半濁点(゜), 00=スペース


🛠️ 使い方(スマホ版)

1. 適当なページをブックマークする

まずは、今見ているこのページなど、何でもいいので一度ブックマークに登録します。

2. 「編集」を開く

ブックマークバーにある今作ったブックマークを長押しして、「編集」を選択します。

3. 内容を書き換える

表示された設定画面で、以下の2箇所を変更して保存します。

  • 名前: (自分が分かりやすい名前)

  • URL: もともと入っているURLをすべて消して、コードを貼り付ける

ブックマークを押すだけ簡単!


📋これを貼ります!

javascript:(function(){  var w = window.open();  if (!w) return;  var d = w.document;  var style = d.createElement('style');  style.textContent =     '* { box-sizing: border-box; margin: 0; padding: 0; user-select: none; -webkit-user-select: none; }' +    'body { background-color: #111827; color: #f3f4f6; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; display: flex; justify-content: center; align-items: center; min-height: 100vh; padding: 20px; }' +    '.container { background: #1f2937; border: 4px solid #374151; border-radius: 20px; padding: 24px; width: 100%; max-width: 360px; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 10px 10px -5px rgba(0, 0, 0, 0.4); }' +    '.title { color: #84cc16; font-size: 22px; font-weight: bold; text-align: center; margin-bottom: 16px; display: flex; align-items: center; justify-content: center; gap: 8px; }' +    '.lcd-screen { background-color: #84cc16; color: #1a2e05; border: 3px solid #4d7c0f; border-radius: 8px; padding: 12px; font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 24px; font-weight: bold; min-height: 100px; display: flex; flex-direction: column; justify-content: space-between; margin-bottom: 20px; box-shadow: inset 0 2px 4px rgba(0,0,0,0.3); word-break: break-all; }' +    '.lcd-output { min-height: 36px; line-height: 1.2; letter-spacing: 2px; }' +    '.lcd-input { font-size: 16px; color: #365314; min-height: 20px; text-align: right; }' +    '.keypad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }' +    '.btn { background: #374151; color: #f9fafb; border: 2px solid #4b5563; border-radius: 12px; font-size: 20px; font-weight: bold; padding: 16px 0; cursor: pointer; text-align: center; transition: all 0.05s ease; box-shadow: 0 4px 0 #1f2937; }' +    '.btn:active { transform: translateY(4px); box-shadow: 0 0 0 #1f2937; background: #4b5563; }' +    '.btn-func { background: #9ca3af; color: #111827; border-color: #d1d5db; }' +    '.btn-func:active { background: #d1d5db; }' +    '.btn-danger { background: #ef4444; color: #ffffff; border-color: #f87171; }' +    '.btn-danger:active { background: #dc2626; }';  var headTarget = d.head || d.body || d.documentElement;  headTarget.appendChild(style);  d.title = '📟 ポケベル気分';  var container = d.createElement('div');  container.className = 'container';  var title = d.createElement('div');  title.className = 'title';  title.innerHTML = '📟 ポケベル気分';  var lcd = d.createElement('div');  lcd.className = 'lcd-screen';  var outputDiv = d.createElement('div');  outputDiv.className = 'lcd-output';  var inputDiv = d.createElement('div');  inputDiv.className = 'lcd-input';  lcd.appendChild(outputDiv);  lcd.appendChild(inputDiv);  var keypad = d.createElement('div');  keypad.className = 'keypad';  container.appendChild(title);  container.appendChild(lcd);  container.appendChild(keypad);  var bodyTarget = d.body || d.documentElement;  bodyTarget.appendChild(container);  var audioCtx = null;  function playBeep() {    try {      if (!audioCtx) {        var AudioContext = w.AudioContext || w.webkitAudioContext;        if (AudioContext) {          audioCtx = new AudioContext();        }      }      if (audioCtx && audioCtx.state === 'suspended') {        audioCtx.resume();      }      if (!audioCtx) return;      var osc = audioCtx.createOscillator();      var gain = audioCtx.createGain();      osc.type = 'sine';      osc.frequency.setValueAtTime(1500, audioCtx.currentTime);      gain.gain.setValueAtTime(0.15, audioCtx.currentTime);      gain.gain.exponentialRampToValueAtTime(0.001, audioCtx.currentTime + 0.08);      osc.connect(gain);      gain.connect(audioCtx.destination);      osc.start();      osc.stop(audioCtx.currentTime + 0.08);    } catch (e) {}  }  var map = {    '11':'あ', '12':'い', '13':'う', '14':'え', '15':'お',    '21':'か', '22':'き', '23':'く', '24':'け', '25':'こ',    '31':'さ', '32':'し', '33':'す', '34':'せ', '35':'そ',    '41':'た', '42':'ち', '43':'つ', '44':'て', '45':'と',    '51':'な', '52':'に', '53':'ぬ', '54':'ね', '55':'の',    '61':'は', '62':'ひ', '63':'ふ', '64':'へ', '65':'ほ',    '71':'ま', '72':'み', '73':'む', '74':'め', '75':'も',    '81':'や', '83':'ゆ', '85':'よ',    '91':'ら', '92':'り', '93':'る', '94':'れ', '95':'ろ',    '01':'わ', '02':'を', '03':'ん',    '88':'゛', '99':'゜', '00':' '  };  var currentInput = '';  var currentText = '';  function updateLCD() {    outputDiv.textContent = currentText;    inputDiv.textContent = currentInput ? currentInput + '...' : '';  }  function handleNum(num) {    playBeep();    currentInput += num;    if (currentInput.length === 2) {      var char = map[currentInput] || '?';      currentText += char;      currentInput = '';    }    updateLCD();  }  function handleClear() {    playBeep();    currentInput = '';    currentText = '';    updateLCD();  }  function handleBS() {    playBeep();    if (currentInput.length > 0) {      currentInput = currentInput.slice(0, -1);    } else if (currentText.length > 0) {      currentText = currentText.slice(0, -1);    }    updateLCD();  }  var buttons = [    { label: '1', action: function() { handleNum('1'); } },    { label: '2', action: function() { handleNum('2'); } },    { label: '3', action: function() { handleNum('3'); } },    { label: '4', action: function() { handleNum('4'); } },    { label: '5', action: function() { handleNum('5'); } },    { label: '6', action: function() { handleNum('6'); } },    { label: '7', action: function() { handleNum('7'); } },    { label: '8', action: function() { handleNum('8'); } },    { label: '9', action: function() { handleNum('9'); } },    { label: 'C', class: 'btn-danger', action: handleClear },    { label: '0', action: function() { handleNum('0'); } },    { label: 'BS', class: 'btn-func', action: handleBS }  ];  buttons.forEach(function(b) {    var btn = d.createElement('div');    btn.className = 'btn' + (b.class ? ' ' + b.class : '');    btn.textContent = b.label;    btn.addEventListener('touchstart', function(e) {      e.preventDefault();      b.action();    });    btn.addEventListener('click', function(e) {      b.action();    });    keypad.appendChild(btn);  });})();void(0);

一発作成プロンプト!

数字ボタンをタップすると平成レトロな「ピピッ!」という高音電子音が鳴り、ドット風の緑色液晶画面にポケベル文字(11=あ, 12=い, 13=う... 等)がリアルタイムに打刻・変換されていくストレス解消&フィジェットツール「ポケベル気分」を新規タブ(別タブ)で起動するブックマークレットを作成してください。

一時保存や外部通信、実行元ページへのDOM追加は完全に禁止とし、完全なES5/ES6互換構文で構成してください。

【TrustedHTMLエラー(This document requires 'TrustedHTML' assignment)の絶対回避ルール(最厳守)】
- `innerHTML`、`outerHTML`、`document.write()`、`insertAdjacentHTML` 等の「文字列によるHTML書き込み」は、Trusted Typesセキュリティにより『This document requires 'TrustedHTML' assignment』エラーが発生してスクリプトが即死するため【完全禁止】とします。
- 新タブ内のすべてのテキスト・UI要素は、必ず `document.createElement()` で要素を生成し、`element.textContent = "..."` や `element.setAttribute()`、`element.appendChild()` の純粋なDOM APIのみを用いて組み立ててください。

【音響機能(高音電子音限定・最重要)】
- 低音や重低音ノイズは【完全廃止】とし、Web Audio API(OscillatorNode)を用いて1990年代のポケベルやPHSを思わせる【高周波帯(1200Hz〜2000Hz)のピピッと心地よい短音ビープ】のみを生成してください。
- 数字ボタンをタップするたびに遅延なく高音ビープ音を鳴らしてください。

【ポケベル文字変換ロジック(ベル文字入力法)】
- 2桁の数字が揃った瞬間に自動でひらがなに変換して液晶に表示してください。
- 変換テーブル例(基本50音):
  11=あ, 12=い, 13=う, 14=え, 15=お
  21=か, 22=き, 23=く, 24=け, 25=こ
  31=さ, 32=し, 33=す, 34=せ, 35=そ
  41=た, 42=ち, 43=つ, 44=て, 45=と
  51=な, 52=に, 53=ぬ, 54=ね, 55=の
  61=は, 62=ひ, 63=ふ, 64=へ, 65=ほ
  71=ま, 72=み, 73=む, 74=め, 75=も
  81=や, 83=ゆ, 85=よ
  91=ら, 92=り, 93=る, 94=れ, 95=ろ
  01=わ, 02=を, 03=ん, 88=濁点(゛), 99=半濁点(゜), 00=スペース
- 1文字目の数字を入力した時点では仮入力状態とし、2文字目が入ったら一瞬で文字に変換して画面に追加してください。

【JavaScript即死・ブランク化の絶対防止構造】
- `const w = window.open(); const d = w.document;` を取得後、開いた直後の `w.document` の `head` や `body` が null の場合でも絶対にエラー停止を起こさないよう、安全なフォールバック処理(`const target = d.head || d.body || d.documentElement;` 等)を徹底してください。
- 親画面での prompt() 呼び出しは別タブの描画スレッドを一時停止させるため【完全禁止】とします。

【新タブ内のUIレイアウトイメージ】
・ 全体背景: #111827(ダークモード)
・ 液晶表示エリア: レトロなレモングリーン/緑液晶色(背景: #84cc16, 文字色: #1a2e05, SFMono/monospaceフォント, 24px/bold, 枠線付き)
  - 上段: 変換された文字(例: 「あいしてる」)
  - 下段: 現在入力中の数字(例: 「42...」)
・ タイトル: 📟 ポケベル気分 (#84cc16 / 22px / bold)
・ テンキー操作部: 1〜9, 0, クリア(C), 送信(BS) ボタンを配置
・ 機能ボタン: [クリア] ボタンで液晶を全消去

【出力形式(絶対厳守)】
- 解説テキストや前置き文は一切出力しないでください。
- 全体を `javascript:(function(){ ... })();void(0);` のラッパー構造で記述し、可読性を保った改行ありの単一コードブロックのみを出力してください。

この記事について!

今更ながら、Gemini 3分クッキング記事について注意点など|へろん


PR記事を書かせて頂いています!


何でもどうぞ!答えられるものは全て答えます!

設置はお済みですか?図らずも人の庭でnote質問箱を試す!|へろん


メンバーシップ始めました!

まだ手探りですが、ご要望/無茶振り/質問、可能な限りお受けします!


参加させて頂いています!是非チェックしてみてください😆


有料ツールに挑戦中!

OBS Studio用リモコン | OBS画面を前面に出さずに操作できます!


小道具すべて、こちらに置きました!


☕ お時間あればこちらも是非!

いいなと思ったら応援しよう!

へろん いつも応援ありがとうございます! 快適な制作を進めるためのおやつ活動費に使わせて頂きます!