Как нажать на тег </span>? (Веб-браузер - Delphi) - PullRequest
2 голосов
/ 12 сентября 2010

как я могу нажать на тег на html-странице?

, например:

<span id="_ID_">Hello There</span>

Возможно ли это?Спасибо

Ответы [ 3 ]

5 голосов
/ 12 сентября 2010

Я думаю, что вы хотите сказать «как я могу вызвать событие click для элемента span?». Для элемента span:

<span id="myId" onclick="myOnclikFunction()">Hello There</span>

В JavaScript вы можете имитировать щелчок (кажется, работает только в IE!):

document.getElementById("myId").click();

С помощью jQuery вы можете вызвать событие click (и вызвать функцию myOnclikFunction ()) для такого элемента, как этот:

$('#myId').trigger("click");

или

$('#myId').click();

Для информации: id="_ID_" не является допустимым кодом HTML. Идентификатор не может начинаться с "_". Оно должно начинаться с буквы A-Z или a-z (см. Атрибут HTML id ).

4 голосов
/ 13 сентября 2010

Вы можете сделать следующее:

procedure TMainFrm.ClickBtnClick(Sender: TObject);
var
 Document : IHTMLDocument2;
 SPAN, Temp : IHTMLElement;
 ElementCount, I : Integer;
begin
 if WB.Document = nil then
  begin
   MessageBox(Handle, 'First Load a Page in TWebBrowser !!', '', MB_OK+MB_ICONEXCLAMATION);
   Exit;
  end;

 if SIDEdit.Text = '' then
  begin
   MessageBox(Handle, 'Enter SPAN ID !', '', MB_OK+MB_ICONEXCLAMATION);
   Exit;
  end;

 Document := WB.Document as IHTMLDocument2;
 ElementCount := Document.all.length;
 for I := 0 to ElementCount - 1 do
  begin
   Temp := Document.all.item(I, '') as IHTMLElement;
   if (Temp.tagName = 'SPAN') and (Temp.id = SIDEdit.Text) then
    begin
     SPAN := Temp;
     Break;
    end;
  end;
 if SPAN <> nil then
  SPAN.click
 else
  MessageBox(Handle, 'No SPAN Tag with ID Entered Found !', '', MB_OK+MB_ICONINFORMATION);
end;

Поместите эти компоненты в форму:

TWebBrowser , Имя: " WB ", для просмотра страницы

TEdit , Имя: " SIDEdit ", для присвоения идентификатора тега SPAN

TBitBtn , Имя: " ClickBtn ", код выше является событием OnClick для "ClickBtn"

Я думаю, что код прост и переменные понятны, при необходимости, скажите мне объяснить код ...

Есть пример ...

Удачи ...!

1 голос
/ 12 сентября 2010

внутренний интервал onclick = "yourJsFunctionishere ();

...