技術的には可能です。下記の設定および処理の動作でご要望どおりであるか、画面のご要件との兼ね合いをご検討の上、ご活用ください。(弊社サポート範囲外です)
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 設定ここまで -->この記事は役に立ちましたか?
それは素晴らしい!
フィードバックありがとうございます
お役に立てず申し訳ございません!
フィードバックありがとうございます
フィードバックを送信しました
記事の改善におけるご協力ありがとうございます。