Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Delphi и js


Автор: Ruless 29.8.2009, 11:53
Уважаемые программисты. Помогите разобратся.
После выполнения запроса 
Код

 s:=idhttp1.get('http://site.ru/index.html');
 Memo1.Lines.add(s);

в мемо выводится следующий код
Код

<html>
<body leftmargin=0 topmargin=0 rightmargin=0 bottommargin=0 marginwidth=0 marginheight=0>
<p><script type="text/javascript">
var sid = Math.round(Math.random() * 100000000);
document.write('<script type="text/javascript" src="http://site.ru/adout.php?p=984&t=1&sid=' + sid + '"><\/script>');
</script>
</p>
</body>
</html>



как средствами делфи организовать запрос на "http://site.ru/adout.php?p=984&t=1&sid=' + sid + '"?
тоесть получить значение переменной sid? Прошу помочь разобратся в этом вопросе smile заранее спасибоsmile

Автор: mr_smit 29.8.2009, 14:41
Результатом выполнения 
Код
Math.round(Math.random() * 100000000);
 является случайное 8-ми значное число.

Для тех кто не верит: (запустите в браузере)
Код

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<script type="text/javascript">
var a = Math.random();
var b = a*100000000;
var c = Math.round(b);
alert(a+' <-> '+b+' <-> '+c);
</script>
</body>
</html>


user posted image

Поэтому:
Код

procedure TForm1.Button1Click(Sender: TObject);
var sid: integer;
begin
Randomize;
sid:=random(99999999);
s:=Idhttp1.Get('http://site.ru/adout.php?p=984&t=1&sid='+IntToStr(sid));
end;


Если значения p=984&t=1 каждый раз разные, то вытаскивай их с помощью Pos() и PosEx().

Автор: Ruless 29.8.2009, 15:40
Спасибо, я знаю что это рандом. А нет возможности вытащить именно то число которое сгенерироволось скриптом? Просто  на сколько мне известно в данном случае это имеет значение.

Автор: mr_smit 30.8.2009, 19:57
Разницы никакой. Что браузер тебе случайное число выдаст что Delphi.

Если хочешь помучиться поставь браузер (компонент) на форму и парси код страницы где будет число сгенерированное браузером.

Автор: Zlo 31.8.2009, 20:16
Сам когда-то задавал подобный вопрос на который мне к счастью ответили smile
ссылка: http://forum.vingrad.ru/forum/topic-60086.html

Автор: Ruless 2.9.2009, 00:05
всем спасибо) тема закрыта)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)