11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je voudrais faire la chose suivante :
un script JS qui transformerait certains mots de la page HTML où il est inclu en liens vers la base de données d'un autre site.
Exemple 1 : d'un côté mon site, qui contient des textes divers et variés, de l'autre Wikipedia.
J'ajoute ce script à mes pages, et hop ! les mots qui dans mon texte ont une page Wikipedia sont transformés en liens vers la page adhoc de Wikipedia.
Exemple 2 : inversement, si j'ai un site sur un thème précis (les motos, les champignons, les poissons ou que sais-je), d'autres personnes prennent ce script que je leur met à disposition, et leurs textes contiennent alors des liens vers les articles de ma base de données.
Il y aurait quelques règles à respecter : ne pas transformer en lien les mots qui sont déjà un lien, ni ceux qui sont dans une balise (comme le title de la balise A).

J'ai fait quelques recherches avec les mots clefs suivants (entre autres, et pas tous ensemble) : javascript, linkifier, parse text, create link, etc., sans succès.

Ma question est donc :
Un tel script doit déjà exister, où est-ce que je peux le trouver ? (idéalement plusieurs exemples)

Merci pour votre aide
Yann
QuentinC a écrit :
A priori ça doit être jouable avec une série de preg_replace et preg_replace_callback.


Sauf erreur, ça c'est du PHP et pas du javascript Smiley ohwell
Salut,

Comment comptes-tu connaître les mots qui ont une définiton Wikipédia ou qui sont dans ta base de données depuis le code JavaScript ? En faisant une requête HTTP pour chaque mot dans le but de voir si la page existe ? Smiley eek

En tout cas, il me semble que ce genre de tâches est de la responsabilité du serveur et non du client.
Julien Royer a écrit :
Salut,

Comment comptes-tu connaître les mots qui ont une définiton Wikipédia ou qui sont dans ta base de données depuis le code JavaScript ? En faisant une requête HTTP pour chaque mot dans le but de voir si la page existe ? Smiley eek

En tout cas, il me semble que ce genre de tâches est de la responsabilité du serveur et non du client.


Je partage entièrement l'avis de Julien Royer.

Si tu tiens néanmoins à tout prix à ta manière de faire, la seule piste que je vois c'est de :

1/ Récupérer L'index général de Wikipedia sous un tableur quelconque : http://fr.wikipedia.org/wiki/Special:Allpages

2/ De te développer une macro sous ce tableur qui te construit à partir de cet index une pseudo base de données qui soit en fait un fichier .js fait comme suit :

index=newArray();
...
index[j]=newArray();
index[j][0]="nom_d'une_entrée_wikipedia";
index[j][1]="lien_associé";
...

3/ De développer dans un autre .js un parser qui passe ta page au crible et crée les liens voulus.

3/ d'inclure ces deux .js dans une balise script de ta page

C'est tout de même un poil usinàgazesque...
Je sais...
J'ai essayé...
Modifié par aCOSwt (18 Jan 2007 - 17:47)
aCOSwt a écrit :
2/ De te développer une macro sous ce tableur qui te construit à partir de cet index une pseudo base de données qui soit en fait un fichier .js fait comme suit :

index=newArray();
...
index[j]=newArray();
index[j][0]="nom_d'une_entrée_wikipedia";
index[j][1]="lien_associé";
Quelle taille fait ce fichier, par curiosité ? Smiley cligne
60K environ...

Mon problème était similaire à celui posé ici sauf qu'au lieu d'entrées dans Wikipedia, il s'agissait d'adhérents d'un club de sport...
Alors... forcément... il y en avait beaucoup moins...
Mais... comme mon ISP ne me donnait ni php ni mysql alors... système D...
a écrit :

Sauf erreur, ça c'est du PHP et pas du javascript

Effectivement, j'ai lu un peu trop vite. Mais je rejoins les avis précédents à savoir qu'il serait plus judicieux de faire ce genre de traitement côté serveur. En lisant ce que tu voulais faire, ça m'a semblé tout de suite évident que ça allait être côté serveur, du coup je n'ai pas fait attention que j'étais dans la partie javascript.
Qu'à cela ne tienne, les expressions régulières et les fonctions équivalentes à preg_replace/preg_replace_callback existent en javascript.
Julien Royer a écrit :
Comment comptes-tu connaître les mots qui ont une définiton Wikipédia ou qui sont dans ta base de données depuis le code JavaScript ? En faisant une requête HTTP pour chaque mot dans le but de voir si la page existe ? Smiley eek


Heu... sûrement pas. Cette méthode me semble tellement... incongrue qu'elle ne m'était pas venue à l'esprit.
L'idée est d'avoir un fichier qui serve d'index qui soit appelé par le javascript principal. Un peu ce que décrit le message suivant.

a écrit :
En tout cas, il me semble que ce genre de tâches est de la responsabilité du serveur et non du client.


Oui, et je le fais déjà avec succès sur mon site.
Mais je voudrais permettre à d'autres sites d'ajouter ainsi des liens à leurs pages, dynamiquement, avec un seul petit copié / collé.
Certaines personnes ne sont pas assez sûres d'elles pour le faire côté serveur, ou bien leur hébergeur ne le permet pas. Dans ce JS me semble la seule piste, mais ce sera peut-être une impasse, on verra.

a écrit :
Qu'à cela ne tienne, les expressions régulières et les fonctions équivalentes à preg_replace/preg_replace_callback existent en javascript.


C'est une bonne nouvelle, mais je ne trouve pas. J'ai regardé un peu partout, notamment là :
http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference#Global_Functions
Mais sans succès Smiley decu

Merci à tous !