Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> распознавалка JavaScript 
:(
    Опции темы
___Felix___
Дата 13.10.2007, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.1.2007

Репутация: нет
Всего: нет



Здрасть, таварисчи программисты. У меня такая проблема.
Есть JavaScript'овый код, который, что-то выводит на страницу, например:

Код

document.write('<b>');
if(x == 1)
{
    document.write('Hello!');
}
else
{
    document.write('Goodbye!');
}


Есть ли какие-нить примбамбасы (компоненты, алгоритмы и тд) на Делфях (хотя необязательно) чтобы я получил "<b>Hello!</b>" или "<b>Goodbye!</b>". Вообщем чтобы провернуть скрипт и получить то, что выведется на страницу. Написал бы сам поиск строк "document.write", но если задуматься - придется писать полный интерпритатор. smile 
PM MAIL   Вверх
Mr.Floppy
Дата 13.10.2007, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 3.7.2006
Где: Москва

Репутация: нет
Всего: 1



Код
uses SHDocVw_TLB, MSHTML_TLB;

procedure TForm1.Button1Click(Sender: TObject);
var
  HTMLString: string;
begin
  HTMLString := '<script>' +
         'document.write(''<b>'');' +
         'x = 1;' +
         'if(x == 1)' +
         '{' +
         '    document.write(''Hello!'');' +
         '}' +
         'else' +
         '{' +
          '    document.write(''Goodbye!'');' +
         '}' +
         '</script>';
  WebBrowser1.Navigate('about:' + HTMLString);
end;

procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  Memo1.Text := OleVariant(pDisp).Document.Body.OuterHTML; //с тегами
  Memo1.Text := OleVariant(pDisp).Document.Body.InnerText; //просто текст
end;


Может быть можно и без TWebBrowser обойтись, но все равно через OLE.

Это сообщение отредактировал(а) Mr.Floppy - 13.10.2007, 12:29
PM MAIL   Вверх
___Felix___
Дата 13.10.2007, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.1.2007

Репутация: нет
Всего: нет



Огромное спасиб!
Не знал, очень помогло! smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.