Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Anchor von selektiertem Text in TEdgeBrowser? (https://www.delphipraxis.net/214363-anchor-von-selektiertem-text-tedgebrowser.html)

softtouch 2. Jan 2024 10:08

Delphi-Version: 5

Anchor von selektiertem Text in TEdgeBrowser?
 
Ich habe einen TEdgeBrowser auf der Form. Ich möchte den anchor link irgendwie erhalten, wenn ich den anchor text mit der Maus markiere. Zum Beispiel, die html Seite hat einen link <a href="test.html">Testing</a>. Wenn ich den Text "Testing" nun markiere, wie komme ich an den link? Mit ExecuteScript und "window.getSelection()" bekomme ich ja nur den text.

Der schöne Günther 2. Jan 2024 14:56

AW: Anchor von selektiertem Text in TEdgeBrowser?
 
Ich wüsste noch nicht einmal, wie man das mit JavaScript allgemein macht. Was sollte das ausspucken, wenn du den Text von zwei oder mehr Links markierst?

himitsu 2. Jan 2024 15:22

AW: Anchor von selektiertem Text in TEdgeBrowser?
 
Das selektierte HTML geben lassen und dort dann raus parsen?
https://stackoverflow.com/questions/...on-return-html

softtouch 10. Jan 2024 20:56

AW: Anchor von selektiertem Text in TEdgeBrowser?
 
Hat sich schon erledigt, ich mache das über JS und ExecuteScript.

Ich mache folgendes in onNavigationStarting:

Delphi-Quellcode:
procedure TForm1.onNavigationStarting(Sender: TCustomEdgeBrowser; Args: TNavigationStartingEventArgs);
var
  js:string;
begin
  sender.stop;

  js:='encodeURI(';
  js:=js+'document.activeElement.getAttribute("href")+"|"+';
  js:=js+'document.activeElement.text+"|"+';
  js:=js+'document.activeElement.getAttribute("title")+"|"+';
  js:=js+'document.activeElement.getAttribute("id")+"|"+';
  js:=js+'document.activeElement.getAttribute("name")+"|"+';
  js:=js+'document.activeElement.getAttribute("class")+"|"+';
  js:=js+'document.activeElement.outerHTML+"|"+';
  js:=js+'document.activeElement.innerHTML+"|"+';
  js:=js+'document.activeElement.getAttribute("src")+"|"+';
  js:=js+'document.activeElement.getAttribute("alt")';
  js:=js+')';

  sender.ExecuteScript(js);
end;

himitsu 10. Jan 2024 21:54

AW: Anchor von selektiertem Text in TEdgeBrowser?
 
Dabei gibt es ab Delphi 12 nun diese netten MultiLineStrings :stupid:

Code:
  Sender.Stop;
  Sender.ExecuteScript(
    '''
    encodeURI(
      document.activeElement.getAttribute("href") + "|" +
      document.activeElement.text + "|" +
      document.activeElement.getAttribute("title") + "|" +
      document.activeElement.getAttribute("id") + "|" +
      document.activeElement.getAttribute("name") + "|" +
      document.activeElement.getAttribute("class") + "|" +
      document.activeElement.outerHTML + "|" +
      document.activeElement.innerHTML + "|" +
      document.activeElement.getAttribute("src") + "|" +
      document.activeElement.getAttribute("alt")
    )
    '''
  );
[edit] Ich glaube das Forum kennt die noch nicht. (drum [code] statt [delphi])


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz