0
我需要獲取與圖像關聯的鏈接。 正如你可以在下面的代碼中看到的,我有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」事件呢?它爲您提供正在導航的網址,以及取消導航的選項。 –
@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
@Delphiman,不。每次你點擊一個鏈接並導航到一個URL時,會觸發'OnBeforeNavigate2'。請參閱:http://stackoverflow.com/a/25311587/937125 – kobik