Клуб Яндекс.Поиска для сайта

Вывод во frame

Здравствуйте. Простите за дурацкий вопрос: как организовать вывод результатов во frame на главной странице сайта. Дело в том, что по моим менюшкам меняется содержимое большого окна - фрэйма. Если в него поместить рекомендуемый код, то получается немного по идиотски - во фрэйме и результаты поиска, и содержимое пункта меню. Где написать target='frame'? Помогите пожалуйста.

8 комментариев
Дмитрий Вульбрун
28 января 2016, 01:04

Официально Поиск для сайта не поддерживает сайты с фреймами. Тому есть несколько причин, в частности - поисковик индексирует документы во фреймах и в результаты поиска попадают ссылки на страницы без навигации, что очень нехорошо для удобства пользователей. Поэтому мы не делали специальной поддержки сайтов на фреймах.

Ну а вообще вы можете попробовать разместить поисковую формы и результаты поиска на странице внутри одного фрейма. Хотя тогда, конечно, в адресной строке браузера не будут отображаться параметры запроса, что, навреное, будет неудобно польхователям (нельхя сохранить ссылку на результаты поиска).

Вы отвечаете не на вопрос, который я задал. Я не спрашивал про поиск на сайтах с фреймаи, я спрашивал как вывести результаты во фрейм. Это немного другое, согласитесь? Второе: совершенно не понятен совет разместить строку для поиска и код для выводов результата в одном фрейме. ЗАЧЕМ? Что это изменит? То, что во фрейме помимо результатов поиска появится еще и срока с поиском? Мне это не надо. Это только ухудшит текущий результат.

Дмитрий Вульбрун
28 января 2016, 01:04

Я дал ответ на ваш вопрос фразой "Официально Поиск для сайта не поддерживает сайты с фреймами.". На Вашем сайте контент страницы отображается в iframe. Это как раз такой случай (кстати, в разделе ЧаВо в Помощи к сервису есть ответ на ваш вопрос).

На текущий момент результаты поиска выводятся в iframe, который генерится "налету" скриптом (код результатов поиска).

Из-за того, что между формой поиска и страницей с результатами происходит кроссдоменное общение, то, если мы вставим код результатов на страницу, которая уже сама по себе грузится во врейме, связь нарушится. К тому же, код результатов использует cgi-параметры (как минимум - text и searchid). И поэтому вам необходимо будет научиться  пробрасывать их в ваш iframe.

В общем, вы можете поэкспериментировать и, если вам удастся заставить это работать, напишите об этом в этой теме - я думаю, некоторым участникам Клуба это будет полезным.

Раздел помощи, который вы указали, отнесен почему-то к секретным уровням яндекса. Забавно.

На моем сайте не контент страницы отображается в iframe, а страница имеет помимо кнопок, меню и прочего область iframe, подчиненную с точки зрения иерпархии самой странице. Я так понял, часть скрипта, которая ответственна за вывод результатов, перезагружает страницу сайта целиком? Существует ли способ по какой-либо переменной определить, что причиной перезагрузки картинки явилось использование кнопки поиск? Или может мне использовать другую форму построения поискового запроса? Ведь у вас не во всех формах двухблочный запрос реализоват? Врядли ваши скрипты используют DOM, анализируя саму структуру Скорее всего просто выводят готовый html в текущем месте. Задача - запихнуть скрипт результатов на отдельную страничку, которая будет отображаться во фрейме при нажатии кнопки "поиск". Ну на крайний случай действительно придется сделать кнопку меню "Поиск" и использовать отдельную страничку с вашими скриптами :(

Дмитрий Вульбрун
28 января 2016, 01:04

Прошу прощения, ссылку поправил.

Спасибо.

Дмитрий Вульбрун
28 января 2016, 01:04

По клику на кнопку поиск функция JS формы поиска меняет location страницы. В этом случае все браузеры реагируют одинаково - перегружают страницу.  Значит, на php вы можете вытащить все переменные и их значения из $_GET или $_REQUEST и перенаправить их в документ, который подружается в iframe (то есть в тот, где размещены результаты поиска).

Добрый день

Не знаю кто такой Вульбрун Дмитрий, но знаю что он, как минимум, не говорит всю правду. Может быть Яндекс и не уважает сайты фреймовой структуры, однако они и индексируются и Яндекс-поиск на них ставится - только что поставил (3 апреля 2016 23:14)
Да, нужно выполнить некий "танец с бубном", но не по вредности Яндекса, а по некоторому несовершенству фрейм-кода - ему непременно нужно указать url вставляемой в фрейс страницы. И не иначе.
Проблема решается просто:
- скрипт запроса ставим там где это нужно - с этим никаких проблем.
- скрипт вывода результатов втыкаем прямь в центр страницы, указанной Яндексу в качестве страницы для вывода. И цепляем к ЭТОЙ странице все нужные вам фреймы (банер, меню горизонтальное, меню вертикальное, подвал и т.п.).

Здесь впервые, не знал что картинки не цепляются - тааакие красивые скриншоты по теме сделал ;)