Jump to content

URL's klikbaar maken in tekstvelden


Recommended Posts

Posted

Vind het leuk om met jullie een truukje te delen, die ik al een tijdje met veel plezier toepas. Neem natuurlijk het risico dat jullie het in jullie tomeloze creativiteit zelf al lang bedacht hebben, maar gok er nu nog maar even op dat dit nog niet zo is.

De aanleiding: uit zichzelf kan FileMaker in tekstvelden geen URL’s detecteren en dus ook niet openen. Ik heb dat altijd een wat hinderlijk gebrek gevonden, juist omdat we nu zo gewend zijn geraakt om altijd URL's te kunnen aanklikken. Je kan echter vrij gemakkelijk URL’s klikbaar maken door een combinatie van een custom functie en een klein (getriggered) scriptje.

Het werkt zolang gebruik wordt gemaakt van het openingsmoment van het veld. Door via een het-functie de cursorpositie op te vragen kan  razendsnel worden bepaald of er op een URL wordt geklikt, en zo ja, welke dat dan is. Dit vereist wel dat het de URL van zichtbaar is in een nog gesloten veld, maar dat is niet per se bezwaarlijk.

De (parameterloze) custom functie is:

 

GetURLAtSelection

Let ([ content = Get(InhoudActiefVeld)
	; cursorPos = Get(StartActieveSelectie)
	; pos0 = Max ( Position ( content ; "¶"; cursorPos; -1); 
                    Position ( content ; " "; cursorPos; -1) ) + 1
	; pos1 = Min ( Position ( content ; "¶"; cursorPos; 1); 
                    Position ( content ; " "; cursorPos; 1) )
     ; pos1 = If ( pos1 = 0; Length (content) + 1; pos1)
	; rip = pos1 - pos0
	; result = Middle ( content ; pos0 ; rip )
  ] ;

	 If ( Left ( result; 7 ) = "http://" or Left ( result; 8 ) = "https://"; result; "" )

) // end let

 

De URL-detector werkt nu uitsluitend met http en https. Maar dat kan je vanzelfsprekend uitbreiden met andere protocollen.

Maak vervolgens een OnObjectEnter trigger aan voor het volgende scriptje:

# process URL 

# 
Variabele instellen [ $p ; Waarde: GetURLAtSelection ] 
If [ not IsEmpty (  $p ) ] 
	URL openen [ Met dialoogvenster: Uit ; $p ] 
	Records/verzoeken vastleggen [ Met dialoogvenster: Aan ] 
End If
Script afsluiten [ Tekstresultaat:    ] 

Je kan deze trigger aan elk veld koppelen waaraan je deze functionaliteit wilt toevoegen.

Have fun!

  • 2 weeks later...
Posted

Nog een aanvullende opmerking: deze techniek is eigenlijk ook superhandig voor velden met enkel web- of mailadressen (mailto:). Gebruiker moet simpelweg op de inhoud kunnen klikken op de URL te openen. Dit lijkt mij de snelste manier om deze functionaliteit toe te voegen aan een applicatie. 

Voeg eventueel een klein edit-knopje toe om gewoon naar het veld te gaan.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...