JS+
Усиленный язык сценариев для Windows
с возможностью встраивания
в ваши приложения
О языке JS+ Справочник Скачать JS+ DLL
Контакты
СПРАВОЧНИК ПО ЯЗЫКУ JS+ Содержание

TWebBrowser

- визуальный компонент
Компоненты JS+
Определяет интернет-браузер на базе приложения Internet Explorer.

Создание объекта

webObj=new TWebBrowser(Parent);

Собственные свойства
Свойство Тип Описание
Offline Boolean компонент работает в автономном режиме
RegisterAsBrowser Boolean компонент является браузером по умолчанию
RegisterAsDropTarget Boolean компонент может принимать документы в режиме перетаскивания
Silent Boolean запретить использование диалоговых окон в документе
Только чтение
Busy Boolean компонент занят выполнением текущей операции
FullName String полное название приложения, содержащего компонент
HWND Number дескриптор окна компонента Windows GDI (hWnd)
LocationName String имя загруженного документа или UNC файла/каталога
LocationURL String URL загруженного документа или UNC файла/каталога
Name String сокращенное название приложения, содержащего компонент
Path String путь к приложению, содержащему компонент
ReadyState Enum текущее состояние компонента (см. ниже)
TopLevelContainer Boolean компонент является контейнером верхнего уровня
Type String тип загруженного документа

Свойство ReadyState
Значение Описание
READYSTATE_UNINITIALIZED не инициализирован
READYSTATE_LOADING загружает свои свойства
READYSTATE_LOADED пришел в начальное состояние, но еще не активен
READYSTATE_INTERACTIVE активен, но занят загрузкой документа
READYSTATE_COMPLETE активен, документ загружен и доступен

Стандартные свойства

Собственные методы
Метод Описание
GoBack выполняет переход к предыдущей странице из истории просмотра браузера
GoForward выполняет переход к следующей странице из истории просмотра браузера
GoHome выполняет переход к домашней странице браузера
GoSearch выполняет переход к поисковой странице браузера
Navigate выполняет переход к указанной странице
Refresh перезагружает текущую страницу браузера
SetHTML отображает HTML-код, заданный строковым параметром
Stop прерывает текущую операцию браузера

Стандартные методы

Собственные события
Событие Описание
OnBeforeNavigate2 будет загружен новый документ
OnCommandStateChange изменилась возможность выполнения метода
OnDocumentComplete загрузка документа завершена
OnDownloadBegin начинается загрузка документа
OnDownloadComplete загрузка документа завершена (возможно, неудачно)
OnNavigateComplete2 загрузка документа успешно завершена
OnNewWindow2 будет создано новое окно
OnProgressChange загрузилась очередная часть документа
OnTitleChange изменился заголовок загружаемого документа
OnVisible изменилось свойство Visible компонента

Стандартные события

Пример 1 (JS+)
var URL_Lst=new Array(
"https://google.com",
"https://youtube.com"
);

// Главная форма
frm=new TForm();
frm.Caption="JS+ - визуальный компонент TWebBrowser";
frm.Position=poDesigned;
with (Screen)
  frm.SetBounds(
    WorkAreaLeft,WorkAreaTop,WorkAreaWidth,WorkAreaHeight
  );

// Строка состояния
stb=new TStatusBar(frm);
stb.SimpleText=" Пример интернет-браузера";

// ToolBar
tlb=new TToolBar(frm);
tlb.Align=alNone;
tlb.DrawingStyle=dsGradient;
tlb.EdgeBorders=ebLeft+ebTop+ebRight+ebBottom;
tlb.EdgeInner=esRaised;
tlb.Left=tlb.Top=15;
tlb.ButtonMargin=2;

for (i=j=0;i<7;i++) {
  tbt=new TToolButton(tlb);
  tbt.Style=tbsButton;
  tbt.ShowHint=true;

  switch (i) {
    case 1:
    case 4: tbt.Style=tbsSeparator;
            tbt.Width=3;
            continue;

    case 0: tbt.Hint="Домой"; break;
    case 2: tbt.Hint="Назад"; break;
    case 3: tbt.Hint="Вперед"; break;
    case 5: tbt.Hint="Обновить"; break;
    case 6: tbt.Hint="Остановить";
  }
  tbt.numTag=j;
  tbt.LoadImage(
  JSPlus.HelpDir+"IMAGE\\TWebBrowser\\"+(j++)+".ico");
  tbt.OnClick=tbt_Click;
}

// Кнопка "Переход"
btn=new TButton(frm);
btn.Caption="Переход";
btn.Left=frm.ClientWidth-btn.Width-15;
btn.Top =tlb.Top;
btn.Height=tlb.Height;
btn.Hint="Перейти на страницу";
btn.ShowHint=true;
btn.OnClick=btn_Click;

// Список сайтов со строкой адреса
cmb=new TComboBox(frm);
cmb.Style=csDropDown;
cmb.Sorted=true;
cmb.Left=tlb.Left+tlb.Width+15;
cmb.Top =tlb.Top+(tlb.Height-cmb.Height)/2;
cmb.Width=btn.Left-cmb.Left-15;
for (i=0;i<URL_Lst.length;i++)
  cmb.Items.Add(URL_Lst[i]);
cmb.ItemIndex=0;
cmb.OnKeyPress=cmb_KeyPress;
cmb.OnSelect=cmb_Select;

// WebBrowser
web=new TWebBrowser(frm);
web.Offline=false;
web.Silent=true;
web.Left=tlb.Left;
web.Top =tlb.Top+tlb.Height+15;
web.Width =frm.ClientWidth-web.Left*2;
web.Height=stb.Top-web.Top-15;
web.OnCommandStateChange=web_CommandStateChange;
web.OnDocumentComplete=web_DocumentComplete;
web.OnTitleChange=web_TitleChange;

web.Navigate(cmb.Text,0);
frm.ShowModal();

// Обработчик события OnClick панели кнопок
function tbt_Click(tbt)
{
  switch (tbt.numTag) {
    case 0: web.GoHome(); break;
    case 1: web.GoBack(); break;
    case 2: web.GoForward(); break;
    case 3: web.Refresh(); break;
    case 4: web.Stop();
  }
}

// Обработчик события OnClick кнопки Переход
function btn_Click(btn)
{
  web.Navigate(cmb.Text,0);
}

// Обработчик события OnKeyPress
function cmb_KeyPress(cmb,Key)
{
  if (Key.Value==VK_ENTER)
    web.Navigate(cmb.Text,0);
}

// Обработчик события OnSelect
function cmb_Select(cmb)
{
  web.Navigate(cmb.Items[cmb.ItemIndex],0);
}

// Обработчик события OnDocumentComplete
function web_DocumentComplete(web,url)
{
  var i,lwr_url=(cmb.Text=web.LocationURL).toLowerCase();

  for (i=0;i<cmb.Items.Count;i++)
    if (lwr_url.indexOf(cmb.Items[i].toLowerCase())==0)
      return;

  cmb.Items.Add(cmb.Text);
}

// Обработчик события OnCommandStateChange
function web_CommandStateChange(web,Command,State)
{
  var i;

  switch (Command) {
    case CSC_NAVIGATEBACK : i=2; break;
    case CSC_NAVIGATEFORWARD: i=3; break;
                     default: return;
  }
  tlb.Buttons[i].Enabled=State;
}

function web_TitleChange(web,ttl_Str)
{
  stb.SimpleText=" "+ttl_Str;
  ProcessMessages();
}
Пример 2 (JS+)
var HTML_Buf=
"<HTML>"+
"<META HTTP-EQUIV='Content-type' CONTENT='text/html;charset=windows-1251'>"+
"<STYLE TYPE='text/css'>"+
".STD_FONT {font-family:Arial;font-size:10pt}"+
".STD_BTN  {padding:7px 10px 7px 10px;border:1px silver outset;background:silver;cursor:pointer}"+
"</STYLE>"+
"<BODY STYLE='overflow:auto;border:1px silver solid'>"+
"<TABLE CLASS=STD_FONT WIDTH=100% HEIGHT=100% CELLPADDING=0 CELLSPACING=0>"+
"<TR><TD ALIGN=CENTER VALIGN=MIDDLE>"+
"[CONTENT]"+
"</TABLE>"+
"</BODY>"+
"</HTML>";

// Главная форма
frm=new TForm();
frm.Caption="JS+ - визуальный компонент TWebBrowser";
frm.Width =600;
frm.Height=450;

// Строка состояния
stb=new TStatusBar(frm);
stb.SimpleText=" Нажмите на Кнопку";

// Web-браузер
web=new TWebBrowser(frm);
web.SetBounds(20,20,frm.ClientWidth-40,stb.Top-40);

HTML_Str=
HTML_Buf.replace("[CONTENT]",
"Это <i>страница</i> <b>HTML</b><P>"+
"<BUTTON ID=TST_BTN CLASS=STD_BTN STYLE='font-size:90%' onClick='btn_Click(this.id);'"+
" TITLE='Это HTML-кнопка'>Кнопка"+
"</BUTTON>"+
"<SCRIPT TYPE='text/javascript'>"+
"function btn_Click(id_Str) {"+
"document.title='Нажата кнопка '+id_Str;"+
"}"+
"</SCRIPT>");

web.SetHTML(HTML_Str);
web.OnTitleChange=web_TitleChange;

frm.ShowModal();

function web_TitleChange(web,ttl_Str)
{
  alert(ttl_Str);
}
Совместимость
C++ Builder/Delphi (компонент TCppWebBrowser)
JS+Руководство пользователя
Адрес этой страницы: http://jsplus.ru/MANUAL/JSPlus/Component/TWebBrowser.htm
© 2024,