JavaScriptでWebページの遷移・履歴・タブ操作を解説

image

はじめに

最近仕事の中でWebブラウザのページの遷移、新しいタブを開く、タブを閉じるなどの機能を実装する機会があったので、Webブラウザを操作するこれらの実装についてまとめてみようと思います。

厳密な機能についてまとめるとすごい量になるので、気になったらこちらなどを参考にしてみてください。

ページ遷移

window.location.href = 'https://example.com'; // 指定URLへ遷移
window.location.replace('https://example.com'); // 履歴を残さず遷移

hrefは履歴が残り、replaceは履歴が残りません。

注意点

  • replaceは「戻る」ボタンで元のページに戻ることができません。

新しいタブを開く・閉じる

新しいタブを開く

window.open('https://example.com', '_blank'); // 新しいタブで開く

ウィンドウサイズや位置を指定したい場合

window.open('https://example.com', '_blank', 'width=600,height=400,left=100,top=100');

タブを閉じる

window.close(); // 現在のタブを閉じる

注意点

以下の条件を満たした場合に閉じることができます

  • JavaScriptで開いたタブ(window.openで開いたもの)の場合
  • 履歴が1つしかない(window.history.length === 1のとき)トップレベルブラウジングコンテキストの場合

履歴を進める

window.history.forward(); // 1つ先のページへ進む
window.history.go(2); // 2つ先のページへ進む

注意点

  • 進める履歴がない場合は何も起こりません。

まとめ

これ以外にもページを再読み込みするlocation.reload();など、Webブラウザを操作する機能がたくさんあるので、興味を持った方はぜひ色々調べて見ると楽しいかもしれませんね。

お知らせ

可茂IT塾ではFlutter/Reactのインターンを募集しています!

可茂IT塾ではFlutter/Reactのインターンを募集しています!

可茂IT塾ではFlutter/Reactのインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。

Read More
U30可茂ITインターンハッカソン

U30可茂ITインターンハッカソン

12月28,29日開催。2日間でアプリ開発の企画から完成までを目指す!U30可茂ITインターンハッカソンを開催します。

Read More

タグ

Flutter (122)初心者向け (32)イベント (19)Google Apps Script (17)Nextjs (12)可茂IT塾 (11)React (8)riverpod (7)Firebase (7)デザイン (6)AI (6)JavaScript (6)ChatGPT (5)vscode (5)Figma (5)新卒 (4)就活 (4)Slack (4)Dart (4)お知らせ (4)FlutterWeb (3)Prisma (3)NestJS (3)TypeScript (3)アプリ開発 (3)ワーケーション (3)インターン (3)Web (2)設計 (2)線型計画法 (2)事例 (2)Git (2)CSS (2)Freezed (2)Image (2)File (2)Material Design (2)経験談 (2)画像 (2)iOS (2)React Hooks (2)tailwindcss (2)社会人 (2)大学生 (2)RSS (1)Google (1)CodeRunner (1)NotebookLM (1)個人開発 (1)Android (1)Unity (1)WebView (1)Twitter (1)フルリモート (1)TextScaler (1)textScaleFactor (1)学生向け (1)supabase (1)Java (1)Spring Boot (1)shell script (1)正規表現 (1)table (1)テーブル (1)hooks (1)パワーポイント (1)MCPサーバー (1)Obsidian (1)趣味 (1)モンスターボール (1)SCSS (1)Swift (1)MapBox (1)Cupertino (1)ListView (1)就活浪人 (1)既卒 (1)保守性 (1)iPad (1)シェアハウス (1)スクレイピング (1)PageView (1)画面遷移 (1)flutter_hooks (1)Gmail (1)GoogleWorkspace (1)ShaderMask (1)google map (1)Google Places API (1)GCPコンソール (1)Google_ML_Kit (1)Vercel (1)Google Domains (1)DeepLeaning (1)深層学習 (1)Google Colab (1)Firebase Analytics (1)Gemini AI (1)コード生成 (1)GitHub Copilot (1)GitHub Actions (1)オンラインオフィス (1)html (1)オブジェクト指向 (1)クラスの継承 (1)ポリモーフィズム (1)LINE Messaging API (1)LINE Notify (1)LINE (1)Bitcoin (1)bitFlyer (1)コミュニティー (1)文系エンジニア (1)build_runner (1)ヒーター (1)作業効率 (1) (1)Flutter実践開発 (1) (1)permission_handler (1)flutter_local_notifications (1)markdown (1)GlobalKey (1)ValueKey (1)Key (1)アイコン (1)go_router (1)FireStorage (1)debug (1)datetime_picker (1)Apple Store Connect (1)FlutterGen (1)デバッグ (1)Widget Inspector (1)VRChat (1)API (1)検索機能 (1)Shader (1)SharedPreferences (1)オフラインサポート (1)Navigator (1)メール送信 (1)FlutterFlow (1)Firebase App Distribution (1)Fastlane (1)Dio (1)CustomClipper (1)ClipPath (1)video_player (1)IMA (1)カスタム認証 (1)アニメーション (1)Arduino (1)ESP32 (1)フリーランス (1)会社員 (1)mac (1)csv (1)docker (1)GithubActions (1)Dialog (1)BI (1)Gemini CLI (1)Claude Code (1)LifeHack (1)ショートカット (1)Chrome (1)高校生 (1)キャリア教育 (1)非同期処理 (1)生体認証 (1)BackdropFilter (1)レビュー (1)getAuth (1)クローズドテスト (1)PlayConsole (1)Algolia (1)コンサルティング (1)Symbol (1)

お知らせ

可茂IT塾ではFlutter/Reactのインターンを募集しています!

可茂IT塾ではFlutter/Reactのインターンを募集しています!

可茂IT塾ではFlutter/Reactのインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。

Read More
U30可茂ITインターンハッカソン

U30可茂ITインターンハッカソン

12月28,29日開催。2日間でアプリ開発の企画から完成までを目指す!U30可茂ITインターンハッカソンを開催します。

Read More