Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Формирование ссылки (https://javascript.ru/forum/events/45248-formirovanie-ssylki.html)

Good_Good 20.02.2014 16:29

Формирование ссылки
 
Добрый день, форумчане. Помогите мне с одной проблемкой. Суть в том, что пользователь вводит фразу в текстовом поле, которая заносится в переменную str. Нужно сформировать переход по ссылке вида "http:/site"+str+"context.ru" . Вроде ничего сложного, но составить рабочий скрипт не получается. В листинге перебор различных вариантов, но не один нормально у меня не заработал.

Листинг:

<script type="text/javascript">

var str=$('#poisk').attr("value");
var str2="http://www.site.ru/search?q="+str+"&from=ac" ;

</script>



<form>
<input type="text" name="var" value=" " id="poisk" />

<!-- <input type="button" value="go" onclick="location.href=str2 /> -->
<!-- <a name="1" style="color:blue; text-decoration:underline; cursor:hand" onclick="window.location='str2';">Перейти</a>-->
<!--<a href="javascript:document.str2.submit();">Пере йти</a> -->

</form>

рони 20.02.2014 16:47

Good_Good,
сначала ввели фразу -- потом считали данные -- потом делайте переход куда нужно.
Цитата:

Сообщение от Good_Good
$('#poisk').attr("value");

$('#poisk').val() -- но и это бесполезно пока никто не следит за вводом фраз

Good_Good 20.02.2014 16:52

рони,
А как сделать это отслеживание фразы ? Я думаю правильно понял, что если я скрипт пихну между полем и кнопкой, ничего не изменится..

рони 20.02.2014 16:58

Good_Good, jочень упрощённый вариант
на самом деле должна быть функция
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script>
     str2 = ''
  </script>
</head>

<body>
<form action="http://">
 <input type="text" name="var" value="" id="poisk"  oninput='str2="http://www.site.ru/search?q="+this.value+"&from=ac"'/>
 <input type="button" value="go" onclick="alert(str2)" />
</form>
</body>

</html>

Good_Good 20.02.2014 17:22

рони,
а вот тут надо дописывать что-то <form action="http://"> . Потому что выскакивает:

Вы попытались получить доступ к адресу http:///?var=korn, который сейчас недоступен. Убедитесь, что веб-адрес (URL) введён правильно, и попытайтесь перезагрузить страницу.


Или я уже окончательно поплыл и не то делаю.
Листинг:

<script type="text/javascript">

var str=$('#poisk').attr("value");

</script>


<form action="http://">
<input type="text" name="var" value="" id="poisk" oninput='str="http://www.site.ru/search?q="+this.value+"&from=ac"'/>
<input type="button" value="go" onclick="alert(str)" />
</form>

рони 20.02.2014 17:31

Цитата:

Сообщение от Good_Good
oninput='str="http

выкиньте str из ваших кодов раз вам это ненужно и поставьте this.action
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
 <form action="http://www.site.ru/search">
 <input type="text" name="q" />
 <input name="" type="submit" value="Перейти">
</form>
</body>

</html>

и вам сюда

Good_Good 20.02.2014 17:50

рони,

Работает, только кривовато немного.

вместо http://www.site.ru/search?q="+строка+"&from=ac

получается http://www.site.ru/search?var=строка

рони 20.02.2014 17:59

Good_Good,
смотрите код выше

danik.js 20.02.2014 22:33

Смешно было наблюдать как вы шли к решению, которое проще некуда, да еще и js не требует :D
Бывает, че. Особенно когда либо нихера не знаешь, либо в голове прочно засел JS.
Кое-кто например через iframe решал бы (не буду называть этого человека :) )

Deff 20.02.2014 22:57

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

На счет без js - оспоримо, поскольку неплохо бы кастомизировать поиск
Пример: http://udomovogo.rusff.ru/search.php?action=show_24h
Иконка поиска справо:

рони 20.02.2014 22:57

danik.js,
а если 10 поисковиков ?
Цитата:

Сообщение от danik.js
Смешно было наблюдать как вы шли к решению

через ж... тернии к звёздам :write:

danik.js 20.02.2014 23:08

Цитата:

Сообщение от рони
а если 10 поисковиков ?

Тогда атрибут formaction для каждой кнопки + костыль.

рони 20.02.2014 23:36

Цитата:

Сообщение от danik.js
formaction

кладезь знаний :write:

kostyanet 21.02.2014 09:37

Смысла формы не просек.

Критерии поисковика известны заранее, стало быть по ним делаем шаблон. Шаблон пишем в ссылку, либо в кнопку, не важно. Будет типа Гугл, Яндекс, Ремблер.

В текстовое поле вводим текст. На котором висит простейшая фукнция найти, закешировать элементы и поменять всем элементам href по шаблону. Ну тупо скажем replace('?v=', '?v='+this.value). Или как в sprintf - по маскам.

Нажимай в любой момент любую ссылку и уйдет.

kostyanet 21.02.2014 09:44

Кстати, у меня такая хрень была на десктопе. Выбираю в списке наименование, выбираю меню View->Искать... прямо в коды был зашит шаблон гугля куда и вставлялось значение, а потом через shell (ну то есть вызов браузера) сразу открывалось с результатами.

Good_Good 21.02.2014 14:04

Предложенное решение не работоспособно. Но я нашел решение данного вопроса тут - http://javascript.ru/forum/dom-windo...ndow-open.html

Спасибо, за попытки помочь

danik.js 21.02.2014 15:13

Цитата:

Сообщение от Good_Good
Предложенное решение не работоспособно

Скорее чей-то мозг не работоспособен ))
Нужно внятно описывать задачу. Если тебе нужно было окошко промпта - то почему ты об этом не сказал?

danik.js 21.02.2014 15:16

Good_Good, то есть ты утверждаешь, что пример в этом комментарии у тебя не работает? Хм. Странно, проверил во всех браузерах все робит. Либо у тебя кривые руки, либо ты че-то перепутал, либо ты сидишь не с браузера, а с какой-но непонятной хрени, но дело явно в тебе, а не в предложенном решении 100%

kostyanet 21.02.2014 23:41

Упс, а я и не знал что в js есть prompt. Отложилось что с WScript, где точно проверял - нету.


Часовой пояс GMT +3, время: 05:53.