teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

番号が正しく出ないので修正

2017/11/01 08:21

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -1,14 +1,16 @@
1
1
  考えうる方法
2
2
 
3
- 1. 全てのページでcookieに「いま表示されているURL(Aとする)を保存する処理」を書く(ログインページは除く)
3
+ 全てのページでcookieに「いま表示されているURL(Aとする)を保存する処理」を書く(ログインページは除く)
4
4
  ```javascript
5
5
  document.cookie= 'lastpage=' + window.location; //最終訪問ページを保存
6
6
  ```
7
+
7
- 2. ログインページでcookieに「今からログインするフラグ(Bとする)を保存する処理」を書く
8
+ ログインページでcookieに「今からログインするフラグ(Bとする)を保存する処理」を書く
8
9
  ```javascript
9
10
  document.cookie= 'login=1';// ログインフラグを立てる
10
11
  ```
12
+
11
- 3. ログイン後に遷移するマイページで、「B」状態であった場合、「A」にリダイレクトする処理を書く
13
+ ログイン後に遷移するマイページで、「B」状態であった場合、「A」にリダイレクトする処理を書く
12
14
  ```javascript
13
15
  var cookies = document.cookie.split(";");
14
16
  document.cookie = 'login=0'; // ログインフラグを下ろす
@@ -18,8 +20,10 @@
18
20
  var pair = cookie.split("=");
19
21
  map[pair[0]] = pair[1];
20
22
  }
21
- if('login' in map && map['login'] === '1') {
23
+ if('login' in map && map['login'] === '1') {
22
- // マイページにログイン後に来たので、保存されているURLへリダイレクトする
24
+ // マイページにログイン後に来たので、保存されているURLへリダイレクトする
23
- window.location = map['lastpage'];
25
+ window.location = map['lastpage'];
24
- }
26
+ }
25
- ```
27
+ ```
28
+
29
+ ただし、これはPOSTで遷移したページではリダイレクトで戻ることは出来ないので、GETでのページ移動のみに限ります。