URL eines Links herausfinden

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von mac_in_tosh, 25.03.2008.

  1. mac_in_tosh

    mac_in_tosh Thread Starter Mitglied

    Beiträge:
    216
    Zustimmungen:
    0
    Mitglied seit:
    20.05.2007
    Hallo,
    ich habe ein Skript, welches den ausgewählten Text in Safari in einer Variable speichert:

    Code:
    tell application "Safari"
    	set selectedText to (do JavaScript "''+window.getSelection();" in front document)
    end tell
    Wie kann ich jetzt herausfinden, wie die URL des links ist, wenn ich einen ausgewählt habe??
     
  2. little_pixel

    little_pixel Mitglied

    Beiträge:
    4.259
    Zustimmungen:
    1.129
    Mitglied seit:
    06.06.2006
    Hallo,

    leider funktioniert das so nicht. Du erhältst "nur" den Text. An ihm hängen nicht mehr Informationen. Deshalb kann die URL nicht herausgelesen werden.

    Viele Grüße

    PS: In Deinem anderen Thread habe ich Dir die Lösung geschrieben.
     
  3. mac_in_tosh

    mac_in_tosh Thread Starter Mitglied

    Beiträge:
    216
    Zustimmungen:
    0
    Mitglied seit:
    20.05.2007
    Gibt es eine andere möglichkeit, die URL des in Safari ausgewählten Links herauszufinden??
     
  4. little_pixel

    little_pixel Mitglied

    Beiträge:
    4.259
    Zustimmungen:
    1.129
    Mitglied seit:
    06.06.2006
    Moment, ich schaue gerade und habe glaube ich was.

    Viele Grüße
     
  5. little_pixel

    little_pixel Mitglied

    Beiträge:
    4.259
    Zustimmungen:
    1.129
    Mitglied seit:
    06.06.2006
    Okay,

    ich habe Dir was:

    Code:
    tell application "Safari"
    	
    	set linkAuswahl to do JavaScript "window.getSelection();" in front document
    	set alleLinks to do JavaScript "document.links.length" in front document
    	
    	repeat with nLink from 1 to alleLinks
    		set nLinkURL to do JavaScript "document.links[" & nLink & "].href" in front document
    		set nLinkWert to do JavaScript "document.links[" & nLink & "].text" in front document
    		
    		if (nLinkWert contains linkAuswahl) then
    			display dialog nLinkURL
    			exit repeat
    		end if
    		
    	end repeat
    	
    end tell
    Damit funktioniert es. Gefällt mir aber nicht so gut.
    Ich weiß, dass es ein Abfrage des markierten Objektes gibt. Damit sollte es viel besser funktionieren (vorallem schneller).

    Ich schaue gerade noch mal nach.

    Viele Grüße
     
  6. mac_in_tosh

    mac_in_tosh Thread Starter Mitglied

    Beiträge:
    216
    Zustimmungen:
    0
    Mitglied seit:
    20.05.2007
    Ja, wäre nett, aber genau das ist was ich meine!! Vielen Dank!!
     
  7. mac_in_tosh

    mac_in_tosh Thread Starter Mitglied

    Beiträge:
    216
    Zustimmungen:
    0
    Mitglied seit:
    20.05.2007
    Hab gerade noch etwas bemerkt. Wenn ich auf einer Seite in der es etwa so aussieht: ( alle Kapitel sind verlinkt)

    Buch 1
    Kapitel 1
    Kapitel 2
    Kapitel 3
    Kapitel 4
    Kapitel 5

    Buch 2
    Kapitel 1
    Kapitel 2
    Kapitel 3
    Kapitel 4

    Dann wird, wenn ich vom zweiten Buch z.B. Kapitel 3 anklicke, immer zum Kapitel 3 vom ersten Buch verlinkt.
     
  8. little_pixel

    little_pixel Mitglied

    Beiträge:
    4.259
    Zustimmungen:
    1.129
    Mitglied seit:
    06.06.2006
    Hallo,

    ja, das stimmt. Frage bitte im Web-Entwicklungsforum nach, wie Du ein markiertes Objekt "auslesen" kannst. Ich bin der Meinung es sollte funktionieren. Leider fehlt mir hierzu das JS Know-How. (lange ist es her und vieles ist erweitert)

    Wenn Du weißt, wie die Abfrage aussieht, dann sollte es kein Problem mehr mit der AS Umsetzung sein.

    Viele Grüße
     
  9. mac_in_tosh

    mac_in_tosh Thread Starter Mitglied

    Beiträge:
    216
    Zustimmungen:
    0
    Mitglied seit:
    20.05.2007
    Ja okay. Vielen Dank:) !
     
  10. w2lab

    w2lab Mitglied

    Beiträge:
    125
    Zustimmungen:
    1
    Mitglied seit:
    21.02.2006
    onCopy Event-Handler überschreiben

    Eine "saubere" Lösung kenne ich nicht.
    Folgende Code überschreibt, den onCopy Event-Handler und kopiert den veränderten Text in die Zwischenablage.

    ----
    Alternative:
    onmouseover Event-Handler überschreiben und auf window.getSelection = document.links[x].text prüfen.

    onmouseover=meineFunktion()
    meineFunktion(){
    if window.getSelection = document.links[x].text then
    var URLdesMakiertenTextes=document.links[x].href
    }

    URLdesMakiertenTextes =do JavaScript "URLdesMakiertenTextes;"

    ----
    Code:
    property my_Lib : load script file "Mac HD:SetClipboardData_lib.app" --"http://w2lab.de/macuser.de/353095/SetClipboardData_lib.app"
    
    set SetClipboardData to my_Lib's SetClipboardData
    
    
    -- 1. test webseite
    tell application "Safari"
    	make new document with properties {URL:""}
    	do JavaScript "document.write(\"<a href='http://text.de'>text</a>\");" in document 1
    	activate
    	tell application "System Events" to keystroke "a" using command down
    end tell
    
    -- 2. für alle Links onCopy Event-Handler überschreiben 
    -- SetClipboardData("window.document.title+': '+this.text +' ' +this.href", 1)
    SetClipboardData("this.href", 1) -- 1=Safari front document
    
    -- 3. makierte Link in Clipboard kopieren
    tell application "Safari"
    	activate
    	tell application "System Events" to keystroke "c" using command down
    end tell
    
    tell me to activate
    set theurl to the clipboard as string
    return theurl
     
Die Seite wird geladen...
Ähnliche Themen - herausfinden Forum Datum
Applescript: relativen Pfad für Ordner herausfinden Scripting und Automatisierung 03.08.2017
Wie herausfinden, was gesteuert werden kann.. Scripting und Automatisierung 10.05.2017
Ordnername herausfinden Scripting und Automatisierung 08.02.2009

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.