|
|
Наступает при изменении заголовка загружаемого документа.
Синтаксис
function OnTitleChange(
| Sender, | Text
| );
|
Параметры
|
Параметр
| Тип
| Описание
|
Sender
| TWebBrowser
| дескриптор компонента TWebBrowser
|
Text
| String
| новый заголовок документа
|
|
var URL_Lst=new Array( "https://google.com", "https://youtube.com" );
// Главная форма frm=new TForm(); frm.Caption="JS+ - событие TWebBrowser OnTitleChange"; 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(); }
|
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 OnTitleChange"; 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
|
JS+ | Руководство пользователя
|
|
|
|
|
|