概要
Googleの検索言語をサクッと切り替えるためのブックマークレット - かみのメモ を利用していたのだが、最近うまく切り替わらない
現状
javascript:(()=>{if(location.host=='www.google.com'&&location.pathname=='/search'){var params=new URLSearchParams(location.search);params.set('hl', params.get('hl')=='ja'?'en':'ja');location.search=params.toString();}})()
if(location.host=='www.google.com'&&location.pathname=='/search') {
var params = new URLSearchParams(location.search);
params.set('hl', params.get('hl')=='ja'?'en':'ja');
location.search=params.toString();
}
if 検索画面 params 変数 = URLSearchParamsオブジェクト hl = ja → en hl = en → ja
ていうか
地域を加えてみる (gl = us) → 成功
if(location.host=='www.google.com'&&location.pathname=='/search') {
var params = new URLSearchParams(location.search);
params.set('hl', params.get('hl')=='ja'?'en':'ja');
params.set('gl', params.get('gl')=='ja'?'us':'ja');
location.search=params.toString();
}
javascript:(()=>{if(location.host=='www.google.com'&&location.pathname=='/search'){var params=new URLSearchParams(location.search);params.set('hl', params.get('hl')=='ja'?'en':'ja');params.set('gl', params.get('gl')=='ja'?'us':'ja');location.search=params.toString();}})()
hl, glがないときは jaとみなしたい
今の場合 正常動作したとしても、 enに変換するまで2クリック必要 1回目 hl = null → ja 2回目 hl = ja → en
URLSearchParams: get() メソッド - Web API | MDN ないときは nullを返す
ja または null → en jaでない かつ nullでない → en
三項演算子 条件の連鎖
params.set('hl', params.get('hl')=='ja'?'en':'ja');
params.set('hl', params.get('hl')=='ja'?'en': params.get('hl')== null ? 'en' : 'ja');
if(location.host=='www.google.com'&&location.pathname=='/search') {
var params = new URLSearchParams(location.search);
var hl = params.get('hl');
var gl = params.get('gl');
params.set('hl', hl=='ja'?'en': hl== null ? 'en' : 'ja');
params.set('gl', gl=='ja'?'us': gl== null ? 'us' : 'ja');
location.search=params.toString();
}
javascript:(()=>{
if(location.host=='www.google.com'&&location.pathname=='/search') {
var params = new URLSearchParams(location.search);
var hl = params.get('hl');
var gl = params.get('gl');
params.set('hl', hl=='ja'?'en': hl== null ? 'en' : 'ja');
params.set('gl', gl=='ja'?'us': gl== null ? 'us' : 'ja');
location.search=params.toString();
}
})()
うまくいかない 保留で