11548 sujets

JavaScript, DOM et API Web HTML5

Bonsoir,

J'ai mis en place un système d'URL Rewriting sur mon site, ce qui fait que lorsque l'on se rend, par exemple sur /site/contact.html, on va en réalité sur /index.php?page=contact.

Le problème, c'est que le navigateur croit que l'on se trouve sur /site/contact.html, et du coup, tous mes liens ne sont plus valides. J'ai pu régler cela en n'utilisant que des liens absolus.

Mais il me reste un problème, j'ai un JavaScript, indispensable à une animation flash (achetée, donc je ne l'ai pas conçue), qui se trouve à la racine (donc /script.js). Seulement, il se trouve que les JS prennent leurs repères depuis la page qui les appelle.
Donc par exemple, si on se trouve sur /site/contact.html (qui contient <script src="/script.js" type="text/javascript"></script>), apparemment le JS va chercher le flash dans le répertoire /site/flash.swf, alors qu'en réalité il se trouve à la racine /flash.swf.

Existe-il une fonction qui permettrait de dire au JavaScript de changer de répertoire (comme chdir() en PHP) ? Ou alors, voyez-vous une solution ?

Merci d'avance.

PS : J'ai un peu regardé le fichier JS, mais il est trop compliqué pour que j'essaie de changer moi-même les liens.
Modifié par Oracle (05 Nov 2009 - 07:25)
A part modifier le fichier js en question, non, je ne vois pas d'autre solution. IL n'existe en tout cas pas de fonction du genre chdir.

Au pire, tu peux toujours créer physiquement un vrai dossier site dans lequel tu mettras ton flash. Si ton url-rewriting est fait correctement, il ne devrait pas en empêcher l'accès.
Non parce qu'en réalité, c'est les /dossier1/dossier2/dossier3/page.html qui sont redirigés vers index.php?page=/dossier1/dossier2/dossier3/page, il aurait donc fallu que je crée des swf dans tous les répertoires.

En revanche, ce que j'ai fait, c'est justement utiliser l'URL Rewriting pour les feindre : tous les repertoire_quelconque/flash.swf redirigent vers /flash.swf, et ça fonctionne nickel.

Merci.
Le mieux dans ce cas c'est de toujours utiliser des chemins absolus... parce que sinon, même quand on connaît bien le sujet, les erreurs dues aux répertoires virtuels sont relativement fréquentes. Avec les chemins absolus, on évite toujours ce problème.

Mais bon, là, effectivement, tu n'avais guère d'autre choix que de rewriter aussi le .swf si tu voulais à tout prix éviter de modifier le javascript.