АРМАДА
HTML JS (вопрос - реализация форма поиска без рег. в гугле)
Новая тема Написать ответ Advanced Hosters - профессиональный хостинг

IseeDeadPeople
Объединенная Электрическая
Зарегистрирован: 06.12.2005
Сообщений: 21722
Обратиться по нику
# Добавлено:Пн Авг 22, 2011 3:43 pmДобавить в избранноеОтветить с цитатой
надо на сайте реализовать поиск через гугля именно по сайту своему,
т.е. запрос должен быть такой:
site:domain.com key-1-2words++

ключ поиска будет вводить в простой форме,
типа так:

Код:
<form action=http://www.google.com/search method=get>
<input type="text" value="" size="25" name="q">
<input type="submit" value="Search" name="btnG">
</form>



и вот надо как то с помощью JS сделать чтобы серфер в строке поиска вбивал ключ (key-1-2words++), нажимал искать..
и открывалось новое окно выдачи по этой форме,
т.е. всего то задача средствами JS соединить имя переменной (q), то что ввел серфер в строке, и константу (site:ponydomain.com)
в формат

т.е. чтобы новое окно открылось с get-переменной q заполненной так:
site:ponydomain.com {а тут ключ который ввел серфер}

т.е. человек вводит в форме (переменная q) запрос на поиск,
жмет на ПОИСК кнопку,
и ему открываеться окно (новое окно!! не в той же "вкладке"), с линком составленным так:
http://www.google.com/search?q=site:domain.com+КЛЮЧ

т.е. просто при сабмите формы,
надо взять заполненное поле из форма name="q"
и открыть окно с путем:
http://www.google.com/search?q=site:domain.com+q_изФормы

я могу и сам дописать,
главное скажите каким JS взять поле из формы name="q"
ну и куда и какой JS вставить, чтобы поле выше соединялось с
http://www.google.com/search?q=site:domain.com+{тут вот стока из name="q"}
и открывалось в новом окне!?

__________


также, если человек будет искать того чего на сайте нет,
то какой параметр для гугля добавить - чтобы поиск строго по сайту, если на сайте нет, то ничего невыводить (сторонние ресурсы по кею) - или последнее невозможно!?
porno

exolon
V.I.P.
Зарегистрирован: 22.11.2007
Сообщений: 2397
Обратиться по нику
# Добавлено:Пн Авг 22, 2011 3:59 pmОтветить с цитатой
IseeDeadPeople, Google CSE чем не подходит? Сможешь еще с кликов по адсенсу центики получать.

Цитата:
главное скажите каким JS взять поле из формы name="q"

Повесь на инпут id, а потом document.getElementById('xxxx').value Ну или getElementsByName если хочешь.

IseeDeadPeople
Объединенная Электрическая
Зарегистрирован: 06.12.2005
Сообщений: 21722
Обратиться по нику
# Добавлено:Вт Авг 23, 2011 10:26 amОтветить с цитатой
exolon писал(а):
IseeDeadPeople, Google CSE чем не подходит? Сможешь еще с кликов по адсенсу центики получать.

Цитата:
главное скажите каким JS взять поле из формы name="q"

Повесь на инпут id, а потом document.getElementById('xxxx').value Ну или getElementsByName если хочешь.




т.е. попробую сделать примерно так:


Код:

<script type="text/javascript">
function googlesearchf() {
window.open("http://www.google.com/search?q="+document.forms['googlesearchform'].name['q'].value, "_blank");
}
</script>

<form action="javascript:googlesearchf();" method="get" name="googlesearchform">
<input type="text" value="" size="25" name="q">
<input type="submit" value="Search" name="btnG">
</form>




единственно надо исправить:
document.forms['googlesearchform'].name['q'].value

и именно конец,
пробовал разные варианты написания, окно открывает где то, но q как undefined идет.

а вот твой вариант работает:
замена строки выше на:
window.open("http://www.google.com/search?q="+document.getElementById('q').value, "_blank");

но всетаки надо знать,
как захватить переменную в форме q
именно таким способом:
document.forms['googlesearchform'].name['q'].value !? - этот вариант дает ошибку.



_________


за пользовательские формы спасибо,
но хочеться самому реализовать.
porno

exolon
V.I.P.
Зарегистрирован: 22.11.2007
Сообщений: 2397
Обратиться по нику
# Добавлено:Вт Авг 23, 2011 3:35 pmОтветить с цитатой
Код:
  <form id='theForm'
        action='http://www.google.com/search'
        method='GET' target='_new'>
          <label>Search for:
            <input type='text' name='q' id='txtSearch'></label>
          <input type='submit' id='btnSearch' value='Search'>
  </form>
<script>
window.onload = function() {
 
  document.getElementById('theForm').onsubmit = function() {
    var txt = document.getElementById('txtSearch');
    txt.value = "site:armadaboard.com " + txt.value;
  };
};
</script>



Подсмотрел тут

IseeDeadPeople
Объединенная Электрическая
Зарегистрирован: 06.12.2005
Сообщений: 21722
Обратиться по нику
# Добавлено:Вт Авг 23, 2011 5:40 pmОтветить с цитатой
exolon, спасибо,

это считай тот же вариант что и ты сказал, делаеться через туже переменную "document.getElementById",

но я думаю и твой метод, по переменной: document.getElementById('q').value
будет работать во всех браузерах!?

или для лучьшей кросс-совместимости сделать как я хотел изначально через document.forms['googlesearchform']... !?

_______

практически решено,

только если кто то знает как сделать тоже, как я хотел изначально через document.forms['googlesearchform'].... получить доступ к заполненному полю - отпишите, отпишите только концовку document.forms['googlesearchform']????
остальное все сам допишу.
porno

exolon
V.I.P.
Зарегистрирован: 22.11.2007
Сообщений: 2397
Обратиться по нику
# Добавлено:Вт Авг 23, 2011 6:41 pmОтветить с цитатой
document.forms['MyForm']['q'].value
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ

Перейти:  





Генеральный спонсор



Партнеры