0
이미지와 관련된 링크가 필요합니다. 아래 코드에서 알 수 있듯이 TWebBrowser 구성 요소가 사용자 정의되어 있습니다. WebBrowser보기에서 마우스 클릭을 가로 챌 것입니다.TWebBrowser : 링크가있는 이미지를 클릭하면 링크 href가 표시됩니다.
현재 코드는 일반적인 링크에서 잘 작동하지만 이미지의 경우 이미지를 클릭 할 때 href 링크를 가져올 수 없습니다. 내가 이미지를 클릭하면
, 나는 "https://vimeo.com/194387045을"= 링크 HREF를 얻을 내가 갈 수
다른 방법이?
<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'가 될 것으로 기대했을 것이다. 진짜 질문은 왜 브라우저의 자체 OnBeforeNavigate2 이벤트 대신에 HTML 이벤트를 먼저 처리하는 것입니까? 탐색되는 URL과 탐색을 취소하는 옵션을 제공합니다. –
@RemyLebeau, 브라우저에서 클릭 한 링크를 캡처하는 프로세스를 구현했습니다. OnBeforeNavegate2 이벤트는 탐색에 URL (예 : WebBrowser1.Navegate ('https://www.google.com'))을 제공합니다. 이 경우 Navegate 메서드가 호출되면 OnBeforeNavegate2가 실행됩니다. 내 사건이 아니야. 브라우저에 설정 한 HTML이 있는데 사용자가 클릭 한 링크의 유효성을 검사해야합니다. 내 샘플에서 이미지를 클릭하면 반환 된 URL은 http://172.16.0.16/static/comunica/436dde8236d078cff2dc76deaa113dbb입니다. 하지만 https://vimeo.com/194387045 – Delphiman
@ 델피만을 반환해야합니다. 'OnBeforeNavigate2'는 링크를 클릭하고 URL을 탐색 할 때마다 시작됩니다. 참조 : http://stackoverflow.com/a/25311587/937125 – kobik