[Apple Script] Comment demander à Safari d'ouvrir une URL?

Non ce n’était pas ça Thomas,

mais j’ai une autre question, j’utilise du texte brut dans un TextArea

Dans le texte j’ai des URL, est il possible de les rendre directement cliquable voir surligner voir en couleur ?

bon la sauvegarde du TextArea est dans un fichier .txt, donc faudrait que a chaque ouverture un traitement du TextArea soit fait pour formater le texte et les liens cliquable pas simple clique

j’ai laissé tomber la première méthode c’était un double clique avec la touche commande avec un traitement de la sélection avec de chevrons mais ça ne fonctionne au top, ça fontionne mais il y a des comportement qui son pas sympas, j’ai du faire cette méthode parce que on ne peux pas avoir un évènement click a ma connaissance dans le corps du texte

donc la question comment faire cliquable des URL dans un fichier chargé de type texte dans un TextArea ?

Il faut repérer ce qui ressemble à une url (début http:// ou https:// ou www. ) puis chercher la fin puis voir si le curseur se situe sur un de ces textes (url). Bref, ce n’est pas simple. J’ai fait ça dans mon programme Neuronyx (jeu de Mémory) où j’ai une fenêtre d’info des jeux de cartes personnalisables qui affiche un fichier texte contenant éventuellement une url ou des urls.

Une fois dans un TextArea, j’ai collé un texte venant d’une page web et dans ce texte il y avait un lien et bien ce lien était en bleu et clicable, donc je pense que c’est possible de faire analyser le texte par Xojo pour reformater le texte pour rendre les lien clicable mais comment ?

See Updated Tutorial: Active Words – Xojo Programming Blog .

The code is really bad. And on Monterey the MouseOver makes the TextArea flicker. I had to take that part of the code out. I added a permanent underline instead.

Désolé je n’en sais pas plus. Peut-être que le texte que tu as collé était en RTF (Rich Text Format) et non en Text ( .txt ) ?

Thomas, oui c’est ça, je me demande si en le faisant passer en RTF dans le TextArea si les URL deviendrais automatiquement clicable, et ce la question serait comment forcer TextArae a revoir son contenu pour le formater en RTF ???

Merci Beatrix, mais c’est une capture image que tu me met là, les liens que tu propose ne sont pas clicable

ps : bon finalement j’ai trouvé comment les rendre clicable, je vais voir, merci

fausse impression.

Considère le texte stylisé comme du rtf.

Mieux: enregistre ton texte avec URL comme texte et analyse le…
Dans TextEdit d’Apple, regarde comment créer un lien et utilise l’ensemble.

Un clic dans un TextArea (étai) est détectable… si tu fixe le style de l’url ) bleu-souligné, tu n’as plus qu’à chercher le début et la fon de l’Url lors d’un click dans celle-ci (recherche de https… et de la fin du texte bleu souligné… :wink:

Emile, j’ai rien compris,

je charge dans TextArea, un fichier .txt dans le quel il y a des liens genre “http://www.apple.com”, ce que j’aurait voulu c’est faire je ne sais quel traitement pour que ce lien soit affiché en bleu et qu’il soit clicable en un seul clique comme les lien dans mail, bein tiens voilà, comme ici dans ce chat

Lit la doc…

Tu as des instructions pour passer du texte en couleur, souligné,positionner le curseur d’insertion, etc.

Puis, pas de style dans un texte .txt. en revanche, un fichier rtf, oui (ou autre html, à ta convenance)

Tu es le développeur, à toi d’écrire le code qui fera ce que tu veux.

TextArea:
https://documentation.xojo.com/api/user_interface/desktop/desktoptextarea.html

Ps: je tappe d’une seule main (jai une attèle sur l’autre), alors c’est long et pénible; j’ai fait au plus court.

Dans TextEdit (l’appli Apple):
mode rtf (vois les préférences)

sélectionne un mot (bout de texte),
presses Cmd-K
Place une URL là…

tu as ajouté un lien à ton texte. Enregistre-le (en rtf) et charge ce rtf.

juste un exemple.

Emile,

ok je vais faire quelques recherches, merci

:wink:

Je vais essayer d’être plus clair:

À l’aide de TextEdit (Apple), crée ton fichier avec les liens en utilisant la technique de mon message précédent. Lorsque ton fichier est complet, enregistre-le (en rtf donc).

Dans ton projet Xojo, charge ce fichier rtf en rtf stylé (pas en .txt) dans un TextArea et regarde comment il se comporte.

J’espère que cela est plus clair.

Non, ça ne marche pas: le lien disparaît. désolé…

Bonjour, Emile

une fois j’ai copier collé un texte avec un lien dans ce TextArea, et il avais gardez tous les reglage et les liens était clicable, mais une fois sauvegardé dans un .txt et rechargé en suite les lien n’était plus clicable et la forme etait uni sans couleur sans police sans taille particulière, donc TextArea est capable de gerer ce genre de text, mais comment lui demander de former un texte en activant toutes ces options ?

est du texte brut. As-tu lu mon texte en anglais d’il y a quelques minutes ?

Ceci dit: ce nest pas parce qu’un Control “sait” (la preuve: ça marche !) faire quelque chose… qu’il sait vraiment le faire.
Un enfant sait répéter un texte, cela ne veut pas dire qu’il le comprend.

J’ai écrit - pour toi - le bout de code décrit ici:

Mais la ligne qui contient une URL comme celle ci: DesktopTextArea

n’est pas affichée.

Je déjeune et je vois si je trouve une autre idée.

Copie d’écran de mon fichier rtf de test:
image

La ligne en bleu soulignée contient une URL (active), mais elle n’est pas affichée dans le TextArea.

Désolé.

Pire:

j’ai copié / collé un lien (https://…), dans le fichier rtf de test, ils est traité comme du texte standard.

Il ne te reste plus qu’à appliquer la couleur bleue, le style souligné et ajouter du code qui détectera l’URL dans ton TextArea.

Dans lévènement MouseMoven tu teste où se trouve la souris… si elle est située au-dessus d’un lien, tu change le MouseCursor (utilises le doigt…)…

Merci Emile,

j’ai déjà fait le code qui permet d’ouvrir une URL mais en pressant la touche commande et en faisant un double clique sur le lien et ça fonctionne, mais bon ce n’est pas aussi beau que un simple clique sur une URL en bleu, c’est pour cela que j’ai posé la question et j’ai trouvé un comportement bizard avec cette méthode notamment quand je fait un collé dans le TextArea, donc j’ai viré le code quand j’ai vu que en faisant un control clique sur le lien le menu contextuel me propose d’ouvrir le lien, donc ça va

*>pressant la touche commande et en faisant un double clique sur le lien
ça ne marche pas ici.
M1, Monterey 12.2.1, Xojo 21r2.1

*>comportement bizard
Quel comportement bizarre ?

Pour changer le courseur de la souris:


Me.MouseCursor = System.Cursors.FingerPointer

Me représente le TextArea (code à mettre dans MouseMove, si le curseur survole un lien)…

Affichera la main avec un doigt pointeur (prêt à cliquer)

le comportement bizarre c’est quand la touche commande est enfoncé et que je fait autre chose que de double cliquer, comme un commande C

voilà le code a mettre dans l’évènement selectionchanged

c’est une bidouile de mon point de vu

le lien doit être entouré de chevrons

if Keyboard.CommandKey then

dim i, Debut, Longeur, SelecStartMem as integer

SelecStartMem = me.SelectionStart

for i = me.SelectionStart DownTo 0
me.SelectionLength = 1
if me.SelectedText = “<” then
Debut = i + 1
exit
else
me.SelectionStart = me.SelectionStart -1
me.SelectionLength = 1
if me.SelectedText = “>” then
Debut = 0
me.SelectionLength = 0
exit
end if
end if
next

if Debut = 0 then
me.SelectionStart = SelecStartMem
beep
else
for i = Debut To me.Text.Length
me.SelectionLength = 1
if me.SelectedText = “>” then
me.SelectionStart = Debut
me.SelectionLength = Longeur - 1

    System.GotoURL(me.SelectedText)
    
    'AfficheURLDansSafari(me.SelectedText)
    
    exit
  else
    Longeur = Longeur +1
    me.SelectionStart = me.SelectionStart  + 1
  end if
next

end if

end if