Пожарский Александр. Блог Суббота, 11.05.2024, 07:52
Вход/выход
Облако тегов
Поиск
Архив записей
Главная » 2010 » Октябрь » 29 » Бутмарклет для Яндекс.Маркет
15:43
Бутмарклет для Яндекс.Маркет
Покопавшись в исходнике главной страницы, написал такой html файл
Code

<html>
<head>
</head>
<body>
<form style="margin:0" action="http://market.yandex.ru/search.xml">

<input tabindex="1" class="b-input__text g-js" id="search-input" name="text" onclick="return {name:'b\-search__input','focus':true,'shortcut':true}">
<input type="hidden" name="stype" value="" disabled>
<input type="hidden" name="cvredirect" value="1">  

<input class="b-search__submit" type="submit" tabindex="2" value="Найти">

</form>
</body>
</html>

Форма является копией формы поиска на "маркете".
Теперь переделаем страницу так
Code

<html>
<head>
<script type="text/javascript">

function search()
{

var copyText=function() {
   
  if (window.getSelection) {
  txt = window.getSelection().toString();
  } else if (document.getSelection) {
  txt = document.getSelection();  
  } else if (document.selection) {
  txt = document.selection.createRange().text;
  }  
  return txt;
}

var frm=document.createElement('form');
frm.action='http://market.yandex.ru/search.xml';

var inp1=document.createElement('input');
inp1.name='text';
inp1.value=copyText();
frm.appendChild(inp1);

var inp2=document.createElement('input');
inp2.name='stype';
inp2.value='';
frm.appendChild(inp2);

var inp3=document.createElement('input');
inp3.name='cvredirect';
inp3.value='1';
frm.appendChild(inp3);

var inp4=document.createElement('input');
inp4.type="submit";
frm.appendChild(inp4);

document.body.appendChild(frm);
}

//window.onload=search
</script>
</head>
<body>
<button onclick="search();">1</button>
Samsung x520
</body>
</html>

Участок

Code

var copyText=function() {
   
  if (window.getSelection) {
  txt = window.getSelection().toString();
  } else if (document.getSelection) {
  txt = document.getSelection();  
  } else if (document.selection) {
  txt = document.selection.createRange().text;
  }  
  return txt;
}

создаёт функцию CopyText, которую и исользуем при "заполнении" формы.
Можете посмотреть как работает - сохраните код как страницу, откройте, выделите Samsung X520 и нажмите "1". Остаёт механизировать, тьфу автоматизировать smile , отправку формы.

Code

<html>
<head>
<script type="text/javascript">

function search()
{

var copyText=function() {
   
  if (window.getSelection) {
  txt = window.getSelection().toString();
  } else if (document.getSelection) {
  txt = document.getSelection();  
  } else if (document.selection) {
  txt = document.selection.createRange().text;
  }  
  return txt;
}

var frm=document.createElement('form');
[i]frm.name='bsf';[/i]
frm.action='http://market.yandex.ru/search.xml';

var inp1=document.createElement('input');
inp1.name='text';
inp1.value=copyText();
frm.appendChild(inp1);

var inp2=document.createElement('input');
inp2.name='stype';
inp2.value='';
frm.appendChild(inp2);

var inp3=document.createElement('input');
inp3.name='cvredirect';
inp3.value='1';
frm.appendChild(inp3);

var inp4=document.createElement('input');
inp4.type="submit";
frm.appendChild(inp4);

document.body.appendChild(frm);

[i]document.forms['bsf'].submit();[/i]
}

</script>
</head>
<body>
<button onclick="search();">1</button>
Samsung x520
</body>
</html>

Остаётся ужать search() до вида бутмарклета :

Поиск в Яндекс.Маркет

Просмотров: 634 | Добавил: alexKniaz | Теги: Яндекс маркет, яндекс, бутмарклеты | Рейтинг: 0.0/0
Всего комментариев: 1
1 alexKniaz  
0
Несколько улучшенная версия :
[url]javascript:(function(){if (window.getSelection){txt = window.getSelection().toString();}else if (document.getSelection){txt = document.getSelection();}else{if (document.selection){txt = document.selection.createRange().text;}};var frm=document.createElement('form');frm.name='bsf';frm.action='http://market.yandex.ru/search.xml';var inp1=document.createElement('input');inp1.name='text';if(txt==""){inp1.value=prompt("Введите название товара","");}else{inp1.value=txt;}frm.appendChild(inp1);var inp2=document.createElement('input');inp2.name='stype';inp2.value='';frm.appendChild(inp2);var inp3=document.createElement('input');inp3.name='cvredirect';inp3.value='1';frm.appendChild(inp3);document.body.appendChild(frm);document.forms['bsf'].submit();})()
[/url]

Имя *:
Email *:
Код *:
Календарь
«  Октябрь 2010  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Наш опрос
Оцените мой сайт
Всего ответов: 40
Друзья сайта
  • Хабрахабр
  • Python :-)
  • ithappens
  • Рейлганостроение :-)
  • Пушки гаусса и прочее
  • Copyright MyCorp © 2024
    Конструктор сайтов - uCoz