ポップアップウィンドウのコード生成
Web処理はすべてブラウザ内で完結します。データは送信されません
URL を入れてサイズ・位置とスイッチを調整すると、そのまま貼れるコードが出ます。このツールの価値の半分はもう効かないパラメータを教えることです:`menubar`・`toolbar`・`location`・`status` は現代のブラウザでは無視されます(Chrome も Firefox もスクリプトにアドレスバーを隠させません —— フィッシング対策の設計です)。「menubar=no」を写しても効いたつもりになるだけです。もう半分は安全な既定値です:`window.open` で同一オリジンのページを開くと、新しいウィンドウは `window.opener` を通じて開いた側のページを操作できるため、生成するコードは `noopener` を付け `opener` を消します。
機能
- window.open のコード、または `<a target="_blank">` リンクを出力
- サイズ・位置・サイズ変更の可否・スクロールバーを調整可能。範囲外の値は丸めます
- 無視される menubar / toolbar / location / status は出力せず、理由を画面に書きます
- 既定で noopener を付け、`window.opener` を消します
- noopener の代償を明示的に扱います:features に含めると window.open は null を返します
- URL はリテラルとしてエスケープし、含まれる引用符で文字列が切れないようにします
- javascript: / data: などの擬似プロトコルは拒否します —— ページを開くものではないからです
- 出力は JS / HTML で、シンタックスハイライト付き
使い方
- 開く URL を入力します
- サイズ・位置とスイッチを調整します
- 出力の形を選びます:window.open のコードか、リンクタグか
- 結果をコピー —— そのまま使えます
よくある質問
- 「アドレスバーを隠す」指定がないのはなぜですか?
- 現代のブラウザが許さないからです。`location`・`menubar`・`toolbar`・`status` は Chrome と Firefox では無視されます —— アドレスバーは表示され続けなければならず、そうでなければフィッシングページがアドレスバーのない信頼できそうな画面を装えてしまいます。ブラウザの手抜きではなく安全のための設計なので、このツールはそれらを出力せず、「できるように見える」誤解も与えません。
- noopener は何をして、なぜ既定でオンなのですか?
- `window.open` で開いた同一オリジンのページは `window.opener` を通じて開いた側のページに触れ、別の場所へ遷移させられます —— 小さなウィンドウを開いてメインのページをログイン画面に差し替える、フィッシングの定番手法です。`noopener` はその参照を切り、生成するコードはさらに `win.opener` を空にして両側を塞ぎます。新しいウィンドウから親を操作する必要が本当にある場合以外、切る理由はありません。
- noopener をオンにすると、なぜ `const win = window.open(...)` がないのですか?
- features に `noopener` があると `window.open` は null を返すからです。その場合 `if (win) win.opener = null` は決して実行され(エラーにはなりませんが無意味です)、`window.open(...).focus()` のような書き方はその場で例外になります。そこでその形ではハンドルを一切受け取らないコードを生成し、理由をコメントに書きます —— 「この書き方ではウィンドウを操作できない」と一目で分かるようにするためです。
- ポップアップが出ないのはなぜですか?
- 多くの場合ポップアップブロッカーです。ユーザー操作(クリックやキー入力)から直接呼ばれた `window.open` だけが許可されます。`setTimeout` の中、ページ読み込み時、`await` の後で呼ぶと「ユーザー操作ではない」と判定されて遮断され、関数は正常に戻るのにウィンドウは出ません。クリックハンドラの中で直接呼んでください。
関連ツール
cURL ツールボックス(コード / 解析 / 構築)
Webcurl コマンドを 7 言語のコードに変換し、ヘッダーやボディのフィールド表にも分解できます。HTTP リクエストから curl を組み立てる逆向きも可能です。
HTML ↔ JS
WebHTML を JS の文字列リテラルへエスケープ(`</script>` の分断、引用符・改行の処理つき)。逆に、エスケープされた文字列を HTML に戻すこともできます。
正規表現テスト
テキストブラウザで正規表現をテスト:一致のハイライト、キャプチャグループ、置換プレビュー、バックトラック対策。JavaScript・Python・Java・Go・PHP のコード生成も。
URL 解析
WebURL を解析し、スキーム・ホスト・ポート・パス・クエリパラメータ・アンカーに分解します。パラメータは元の値とデコード値を並記。すべてブラウザ内で処理します。
UA 解析
WebUser-Agent を解析し、ブラウザ・バージョン・OS・デバイス種別・エンジンを判定します。判定はパターン照合による概算です。すべてブラウザ内で処理します。
HTTP ステータスコード
WebHTTP ステータスコードの検索。番号から意味を、キーワードから番号を引けます。1xx〜5xx の分類・利用場面・確認のポイント付き。すべてブラウザ内で処理します。