操作
Backport(バックポート) #3714
完了スマートフォン向けUIで、ホーム画面以外から「PC表示に切り替え」ボタンを押した場合の挙動が正しくない
開始日:
2013-06-17
期日:
進捗率:
100%
予定工数:
説明
現象¶
スマートフォン端末で、メンバー検索 (/member/search) やフレンドリスト (/friend/list) のようにURLのパスが2階層以上のページで「PC表示に切り替え」ボタンを押すと、PC向け画面に切り替わらずにホーム画面に移動する。また、「PC表示に切り替え」ボタンを押したページの階層以下でのみPC向け画面で表示される。
例¶
- スマートフォン端末から、コミュニティ検索 (/community/search) を開く
- 「PC表示に切り替え」ボタンを押す
- ホーム画面に移動するが、スマートフォン向け画面のまま表示される
- メンバー検索 (/member/search) など異なる階層のページでもスマートフォン向け画面となる
- コミュニティ検索 (/community/search) やコミュニティ作成 (/community/edit) ではPC向け画面に切り替わっている
原因¶
source:web/js/smt_main.js の「PC向け表示」ボタンに関するコードは下記のようになっている。
$('#smt-switch')
.show()
.click(function() {
document.cookie = "disable_smt=1";
location.href = $(this).attr('href');
});
document.cookie
によって Cookie を設定しているが path が指定されていない。path が指定されていない場合のデフォルト値は、表示中のページのパスとなる。つまり、コミュニティ検索 (/community/search) ページの場合は /community/ が path にセットされる。よって、この場合は /community/ 以下の階層のページで disable_smt の値が有効となり、それ以外のページでは依然としてスマートフォン向け画面が表示されることになる。
修正内容¶
#3365 によって openpne.baseUrl
を追加した上で、Cookie 設定時の path に openpne.baseUrl
を指定することによって SNS 内の全てのページで disable_smt の値が有効となるようにする。
操作