既定では検索結果のリンク先が新しいウィンドウ(タブ)で開くようになってますよね。私はだいぶ前から使ってましたが、仕様だからしょうがないと思ってました。
タグもバージョンが変わっちゃってすごくシンプルになっちゃいましたよね。私のサイトはすべてHTML 5に移行しちゃってるので、新しいのんに差し替えしようとチマチマやってます。
未だに私はちょっと前のコードをそのまま使ってます。
<script>
(function() {
var cx = '007241786231757499275:rs0lxcpg0k4';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
'//www.google.com/cse/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
</script>
<gcse:searchbox-only></gcse:searchbox-only>
最新バージョンはこんな感じにスマートになるんですよね。
<script async src="https://cse.google.com/cse.js?cx=007241786231757499275:rs0lxcpg0k4"></script>
<div class="gcse-searchbox-only"></div>
今、どういうわけか、カスタム検索ボックスのGoogleブランド表示が、日本語に設定しているのにも関わらず「Google カスタム検索」じゃなくて「ENHANCED BY Google」になっているので、それについてTwitterのつぶやきがないか検索してみました。
そしたら以下のツイートを発見。
Google提供の自サイト内検索が使えなくなってたので、現行のカスタム検索に切り替えたんだけど思ったように扱えなくて参った。
— Akitusima(秋津洲) (@NHK_Aki) 2020年4月29日
せめて検索結果をblankじゃなくてselfで表示できないですかね…
彼はあれからググって導き出した結果、data-linkTarget="_self" でいけたらしいですが…。
私も試してみたんですが、検索結果ページを自前のページ、すなわち、デザインのレイアウトを「2ページ」にしている場合、効かなかったりするんです。
そこで、いろいろ模索していくと、カスタム検索エンジンの編集の詳細設定にリンクターゲットの設定項目を発見しました!
- カスタム検索エンジンページに行く
- 編集したいカスタム検索エンジンをクリック
- 検索エンジンの編集>検索機能>詳細設定を開く
- [ウェブ検索の設定]の▼をクリックして展開
- [リンク ターゲット]を「_self」にして[保存]ボタンをクリック
わざわざ直接コードを編集しなくても、全部この設定ですぐに反映されたことを確認しました。