Url Externe Dynamique

 

Cela apparaît de prime abord très simple. Pourtant, beaucoup d'entre nous ont passé beaucoup de temps sur ce petit problème. Comment faire référence à une URL d'un site externe dynamiquement, c'est à dire en récupérant l'adresse dans une table par exemple.

Plusieurs solutions existent en fait, et je profite de la contribution de Bertrand pour les récapituler dans cette page.

Tout d'abord, la solution de Bertrand :

Lancer un code serveur dans le code Navigateur

Certaines actions n'étant possible qu'au niveau du navigateur client, il est parfois utile de lancer un code navigateur à partir du code serveur.

Pour cela l'astuce est la suivante :

1) placer un champ de saisie invisible dans la page
2) dans le code de chargement nagigateur, tester le contenu de ce champ
s'il est non vide ou s'il contient une valeur spécifique selon votre choix, exécuter un code spécifique

Par conséquent, dans le code serveur de n'importe quel objet de cette page, si vous avez besoin de lancer une action navigateur, mettez la valeur correspondante à votre test dans le champ de saisie et faites une actualisation de la page par un PageActualise(Nom_Page).
Cela aura pour effet d'executer le code de chargement de la page, et donc de lancer l'action navigateur que vous aurez mise dans la partie chargement.

Exemple d'utilisation : pour lancer une URL externe et dynamique à partir du code serveur

Technique du lien dynamique

Exposée dans la Wtablette n° 65, ceci est une technique pour gérer ce lien dans une Zone répétée.

• Créer un champs Lien dans la zone répétée (ex URL_LIEN)
    Très important :
Mettre Aucune dans Opération sur les champs
           Aucune dans Action
Respecter les options ci contre

• Créer un attribut lié à ce champs lien aURL_LIEN en choisissant URL_ACTION comme propriété.

Ensuite en code de chargement de votre ZR, vous aurez un code de ce style :

// Recup d'un fichier d'une URL du genre http://pcsoft.fr (zone UrlFic)
REPETENEWS.aURL_LIEN=UrlFic
REPETENEWS.ATT_LIBNEWS_VIS=Faux
REPETENEWS.ATT_URL_VIS=Vrai
REPETENEWS.ATT_LIBNEWS = ""

Avec un champs HTML

Vous pouvez aussi gérer cela avec un champs de type HTML que vous allez remplir dynamiquement et qui contiendra le code HTML du lien, à savoir les balises href, target et le libellé du lien.

// si géré avec un champs HTML
REPETENEWS.ATT_HTML="<a href="+Entre_Guillemet(REPETENEWS.ATT_URL)+"target=""_blank"" CLASS=PetitesPolices>"+sLibellé+"</a>"

Technique du champs Caché.

Cette technique se rapproche de celle de Bertrand.
Principe : On utilise un champs caché dans la page (ou une variable globale) et en code onload, on va récupérer la valeur de ce champs pour afficher la page dans le navigateur courant.

Cette technique vous a déjà été exposée dans la tablette n° 107.