[GSEC] サジェストで用語をクリックしたらサジェストリストを消すことはできますか?

変更日 金, 5 12月 で 10:11 午前

技術的には可能です。下記の設定および処理の動作でご要望どおりであるか、画面のご要件との兼ね合いをご検討の上、ご活用ください。(弊社サポート範囲外です)


1. GSECサジェストの設定タグに 「suggestClickHook」を追加します。

2. 「suggestClickHook」から呼び出される JavaScript関数(仮に hideSuggest とします)を設定タグより前に記述します。

3. hideSuggest内で document.querySelector('div.poplink_suggest') を変数に代入します。
div.poplink_suggest はサジェストリストが格納される DOMで、https://docs.geniee-search.net/poplink/technical_reference/#dom_structure_reference に解説が記載されています。

4. もし div.poplink_suggest があれば(あるはずです)、クラス名 poplink_invisible を div.poplink_suggest に classList.add します。クラス名 poplink_invisible につきましてもマニュアルに記載がありますので、ご安心してご利用ください。https://docs.geniee-search.net/poplink/technical_reference/#common_dom_structure


この設定および処理の結果、

・サジェストがクリックされたら suggestClickHook から JavaScript関数が呼び出されます。

・呼び出された関数内でサジェストに非表示用クラス名 poplink_invisible が追加されます。

・追加されるとブラウザ処理によって非表示となります。

・フォーカスは移りません。そのままキーボードで入力文字を操作することも可能です。

・文字の削除・追加により、標準のサジェスト機能が再開されサジェストが再表示されます。

と、いうように動作します。

※スマホでも同様の動作になります。


尚、フック関数やフィルタ関数から呼び出される JavaScript関数は、弊社サポート範囲外となります。下記にサンプルを記載いたしますが、弊社保証外、サポート範囲外となります。何卒、ご理解のほど、よろしくお願いいたします。十分にご確認・ご検討の上、ご参考ください。

<!-- GENIEE SEARCH 設定 -->
<script type="text/javascript">

// サジェスト用設定
function hideSuggest() {
  var suggest = document.querySelector('div.poplink_suggest');
  if (suggest) {
    suggest.classList.add('poplink_invisible');
  }
}

var poplink3 = poplink3 || [];
if(document.getElementById("q")){
  poplink3.push({
  uid: "○○○○○○○○○○○○○○○○",
  deviceType: { desktop: 'pcia', mobile: 'spia' },
  target: "#q",
  suggestClickHook: function() { 
    window.setTimeout(hideSuggest, 500);
  },
});
} // end of if
if(document.getElementById("q1")){
  poplink3.push({
  uid: "○○○○○○○○○○○○○○○○",
  deviceType: { desktop: 'pcia', mobile: 'spia' },
  target: "#q1",
  suggestClickHook: function() { 
    window.setTimeout(hideSuggest, 500);
  },
});
} // end of if
// サジェスト用ここまで

</script>
<!-- GENIEE SEARCH 設定ここまで -->


この記事は役に立ちましたか?

それは素晴らしい!

フィードバックありがとうございます

お役に立てず申し訳ございません!

フィードバックありがとうございます

この記事に改善できることがあれば教えてください。

少なくとも一つの理由を選択してください
CAPTCHA認証が必要です。

フィードバックを送信しました

記事の改善におけるご協力ありがとうございます。