ページ遷移してもURLが変わらない系のサイトの場合、 シングルページアプリケーション(SPA) や サーバーサイドのフレーム埋め込み型 である可能性があるとのこと
指定のページへ直で飛ぶリンクが簡単に取得できなくて不便だったので、どうにか直で飛べるURLを取得できないか調べてみた
SPAとは?
https://qiita.com/shinkai_/items/79e539b614ac52e48ca4
🔎 ページ単位のリンク取得可否の判断
-
アンカー(#ハッシュ)やクエリパラメータを利用している場合
- 例:
?page=2や#section3のように、URLの末尾に識別子が付与されている場合は、そのURLをリンクとして利用可能です。
- 例:
-
サーバー側で内部的に画面を切り替えている場合(URLに変化がない)
- ブラウザのアドレスバーは常に同じURLのままです。
- この場合は以下の手順で確認してください。
- 開発者ツールの「ネットワーク」タブを開き、ページ切り替え操作を行う
- その際に送信されるリクエストを確認し、
pageIdやscreenIdなど画面を識別するパラメータ付きのURL(例:STRHeadPage.do?pageId=123)があれば、それを直リンクとして利用できる可能性があります。
-
完全にセッションや JavaScript 内部状態で制御している場合
- URL自体ではページを直接指定できず、リンクとして利用できません。
- この場合はログイン後にメニュー操作や画面遷移を経ないと目的のページに到達できません。
👉 要するに、URLの末尾に「ページを区別できる要素」があるかどうか を確認するのがポイント
🔎 ページ単位リンクが取れるか確認する手順
-
ページを開く
例:https://examle.jp/h2/STRHeadPage.do -
開発者ツールを開く
Windows: F12 または Ctrl+Shift+I
Mac: ⌘ + Option + I -
[Network] タブに切り替える
-
ページ切り替え操作をする(メニュークリックや次の画面に進む操作)
-
Networkに出てきたリクエストを確認
もし
・STRHeadPage.do?pageId=123
・STRHeadPage.do?screenId=xxx
みたいな パラメータ付きURL が出ていれば、それが直リンク候補です。 -
Request Method を見る
GET → URLを直接開ける可能性あり(リンク化できる)。
POST → hiddenフォームやセッション依存。URLだけでは開けないことが多い。
そもそもシングルページアプリケーション(SPA) 、フレーム埋め込み型のウェブサイトとは?
| 項目 | シングルページアプリケーション(SPA) | サーバーサイドのフレーム埋め込み型 | 普通のウェブサイト(マルチページ) |
|---|---|---|---|
| URLの変化 | 基本的に1つのURLで、画面はJSで書き換え。 (ただし history.pushStateでURL風に見せられる) |
親フレームのURLは固定。中のフレームは切り替わってもURL変化なし。 | ページごとにURLが変わる。 |
| 戻る/進む操作 | 実装次第で動く。SPAが対応していればOK、未対応なら使いづらい。 | ブラウザの戻るは使えるが、ページ内の戻るはフレームごとで制御が難しい。 | 標準的にブラウザの戻る/進むで遷移可能。 |
| メリット | - ページ全体リロードなしで高速。 - モバイルアプリ的な体験。 - 動きがリッチにできる。 |
- メニューなど共通部分を再描画せず使える。 - 昔ながらの業務システムで安定。 |
- URLごとに直リンク・ブックマーク可能。 - SEOに強い。 - シンプルで互換性高い。 |
| デメリット | - 初回ロードが重い。 - SEOが弱い(対策必要)。 - 複雑で開発コスト高い。 |
- URL共有が困難(右フレームだけ直リンクするとメニューが消える)。 - スマホやモダン環境で使いにくい。 - 古い仕組み。 |
- ページ遷移のたびに全体リロードで遅い。 - 共通UIも毎回ロードされる。 |
| 向いている用途 | - SNS、チャット、管理画面など操作頻度が高くリッチなUIが必要な場合。 | - レガシーな業務システム(イントラ、帳票系)で画面を小分けに管理したい場合。 | - 企業サイト、ブログ、ECなど一般的な情報サイト。 |
