Несколько GCSE на странице одновременно.
Используя новый код GCSE следующим образом:
// google custom search engine for the whole site
(function() {
var cx = '*****************';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
'//cse.google.com/cse.js?cx=' + cx + '&gname=sitesearch';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
и элемент вроде так:
<gcse:searchbox gname="sitesearch"></gcse:searchbox>
<gcse:searchresults gname="sitesearch"></gcse:searchresults>
Как мне добавить второй тег gcse на страницу и присвоить ему новый CX: я попытался передать gname для каждого в URL следующим образом:
'//cse.google.com/cse.js?cx=' + cx + '&gname=sitesearch';
но безрезультатно ... Я прочитал документацию, где написано;
(Необязательно) Имя для объекта элемента CSE. Имя используется для извлечения связанного компонента по имени или для сопряжения компонента searchbox с компонентом searchresults. Если не указан, пользовательский поиск автоматически сгенерирует gname в зависимости от порядка компонентов на веб-странице. Например, первый безымянный searchbox-only имеет gname «searchbox-only0», а второй имеет gname «seachbox-only1» и так далее. Обратите внимание, что автоматически сгенерированное имя gname для компонента в двухколоночном макете будет двухколоночным. В следующем примере используется gse storesearch для связывания компонента searchbox с компонентом searchresults: что позволяет легко назначить searchbox для результатов поиска. Я просто не могу прикрепить код cx к фактическому тегу.
Я прочитал это:Несколько блоков Google CSE (система пользовательского поиска) на одной странице но это относится к более старой версии GCSE и к этой, где принятым ответом является использование iframe:Как иметь несколько полей пользовательского поиска Google на одной странице
Использование iframe кажется просто глупым и не правильным способом сделать это ...?