Мне нужно получить ссылку, связанную с изображением. Как вы можете видеть в приведенном ниже коде, у меня есть настройка компонента TWebBrowser. Я перехватываю щелчок мыши на представлении WebBrowser.TWebBrowser: Получить ссылку href, когда я нажимаю по изображению со ссылкой
Текущий код работает нормально для общих ссылок, однако для случая изображения я не могу получить ссылку href при щелчке по изображению.
Когда я нажимаю на картинке, я получить ссылку HREF = «https://vimeo.com/194387045»
Любой другой способ, которым я могу идти?
<p> </p>
<p><a href="https://vimeo.com/194387045" target="_blank">
<img src="http://172.16.0.16/static/comunica/436dde8236d078cff2dc76deaa113dbb"
alt="" /></a></p>
Метод:
Procedure TJBWebBrowser.ValidateLinkClick;
Var
LElement: IHTMLElement;
LLink, LTag: String;
LCancel: Boolean;
LDocument: IHTMLDocument2;
Begin
LDocument := IHTMLDocument2(Document);
If Not Assigned(LDocument) Then
Exit;
LCancel := False;
LElement := LDocument.parentWindow.event.srcElement;
LTag := Trim(LowerCase(LElemento.tagName));
If LTag = 'a' Then
LLink := Trim(LElement.getAttribute('href', 0));
If Assigned(FOnURLClick) Then
FOnURLClick(Self, LLink, LCancel);
If (LLink <> EmptyStr) And (Not LCancel) Then
ShellExecute(0, Nil, PChar(LLink), Nil, Nil, SW_SHOWNORMAL);
End;
Итак, вы говорите, что 'srcElement' фактический' '
сам, а не' ', что' '
содержится внутри? Я бы ожидал, что тег '' будет 'srcElement'. Реальный вопрос: почему вы обрабатываете такие события HTML, как это, в первую очередь, вместо того, чтобы вместо этого использовать собственное событие OnBeforeNavigate2? Он дает вам URL-адрес, на который осуществляется переход, и возможность отмены навигации. –
@RemyLebeau, я реализовал процесс захвата щелкнутой ссылки в браузере. Событие OnBeforeNavegate2 предоставляет URL-адрес в навигации, например WebBrowser1.Navegate ('https://www.google.com'). В этом случае OnBeforeNavegate2 выполняется, если вызывается метод Navegate. Это не мое дело. У меня есть HTML, который я установил в браузер, и мне нужно проверить ссылку, на которую пользователь нажал. В моем примере, когда я нажимаю на изображение, возвращаемый URL: http://172.16.0.16/static/comunica/436dde8236d078cff2dc76deaa113dbb. Но мне нужно вернуть https://vimeo.com/194387045 – Delphiman
@Delphiman, №. «OnBeforeNavigate2» запускается каждый раз, когда вы нажимаете ссылку и переходите к URL-адресу. см. http://stackoverflow.com/a/25311587/937125 – kobik