Fork me on GitHub

Rapport de message :*
 

Re: Inclure un petit javascript dans xoops

Titre du sujet : Re: Inclure un petit javascript dans xoops
par Kris sur 07/04/2007 01:12:04

Bonjour,

essayes plutôt d'utiliser lightbox ou thickbox ou greybox, scripts ajax que tu peux trouver dans le package "jseffects" (voir article dans rubrique "thèmes")

A +

ah, j'oubliai comme tu es dans le xhtml et css (donc avec un minimum de javascript :
Citation :

Des popups propres
Les popups, c'est pas si mal. Dans certains cas cela peut-être utile. Exemple: je clique sur un mot comme celui-ci et un petit lexique s'ouvre dans une nouvelle fenêtre.

Cependant, de nombreux internautes désactivent le javascript. Moi-même j'utilise une petite extension de mon navigateur qui restreint le javascript à certains sites. Du coup, il convient de ne pas rendre la consultation du site dépendante du javascript. De même, il est préférable de séparer les scripts du contenu HTML, pour des raisons de maintenabilité.

L'idée est donc de remplacer ce qui suit:
<a href="javascript:window.open('Titre','Url','options')">Lien</a>
Par quelque chose de plus propre.

J'ai donc mis au point le petit script que voilà:


window.onload = function(){
// On lance la fonction qui va permettre de faire des popups propres
replace_popup();
}

// Cette fonction ajoute le comportement "ouvrir popup" à tous les liens dont la class est "popup"
function replace_popup(){
var liens = getElementsByClassName("popup");
for(i = 0; i < liens.length; i++)
{
liens[i].onclick = open_popup;
}
}

// Fonction appelée par les liens popup
function open_popup(){
// On ouvre la popup
if(window.open(this.href,'','height=450, width=550, left=100, top=0, resizable=1'))
// On empeche le navigateur d'ouvrir le lien dans la page courante (puisqu'il est déjà ouvert dans la popup !)
return false;
}

// La fonction suivante a été récupérée sur le net. Elle facilite la programmation
function getElementsByClassName( clsName )
{
var arr = new Array();
var elems = document.getElementsByTagName("*");
for ( var cls, i = 0; ( elem = elems[i] ); i++ )
{
if ( elem.className == clsName )
{
arr[arr.length] = elem;
}
}
return arr;
}
Le mieux étant de placer ce script dans un fichier .js et de le lier à la page HTML de cette facon:
<script type="text/javascript" src="scripts.js"></script>

Du coup, pour faire un lien "popup", il suffit de faire:
<a href="url" class="popup">Lien</a>

Ainsi, si l'internaute n'a pas le javascript, le lien s'ouvrira de facon classique. On peut aussi ajouter la propriété target="_blank" mais alors la page ne sera plus valide xHTML 1.0 Strict...


Il suffit de l'adapter pour les dimensions automatiques en fonction de tes images
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

68 Personne(s) en ligne (56 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 68 | Plus ...