Quelqu'un de fort en javascript pour m'aider là?

Répondre
Partager Rechercher
Soyons très clairs, je ne connais absolument rien en javascript, php, css tout ça…

Je voudrais, par exemple quand je veux poster une image pouvoir utiliser un lien du type
Code:
<a href="javascript:showimage3('test.jpg')">test</a>
pour que cette image s’affiche dans un popup qu’on ferme avec un bouton.

Donc j’ai piqué une partie du code sur un site, parce que comme je ne sais pas faire grand-chose, je copie et j’essaye de faire en sorte que ça marche chez moi après.

J’ai donc à disposition:

un fichier showpicture.js
Code:
function openWindow(url, height, width)
	{
		var sParams = 'height='+height+',' 
            sParams = sParams + 'width='+width+',' 
            sParams = sParams + 'toolbar=no,' 
            sParams = sParams + 'scrollbars=yes,' 
            sParams = sParams + 'directories=no,' 
            sParams = sParams + 'location=no,' 
            sParams = sParams + 'menubar=no' 
            sParams = sParams + ',resizable=yes';
		var win = window.open(url,"memberwin",sParams,true);
	}

Un fichier showpicture.html

Code:
<html>

<head>
<title>pics_viewer</title>
</head>

<body bgcolor="#000000" topmargin="0" leftmargin="0" align="center" >
<table width="400" border="0">
  <tr>
    <td>
  </tr>
</table>
<script language="javascript">
function getArgs() {
    var args = new Object();
    var query = location.search.substring(1);	// Get query string.
    var pairs = query.split(",");				// Break at comma.
    for(var i = 0; i < pairs.length; i++) {
	var pos = pairs[i].indexOf('=');			// Look for "name=value".
	if (pos == -1) continue;					// If not found, skip.
	var argname = pairs[i].substring(0,pos);	// Extract the name.
	var value = pairs[i].substring(pos+1);		// Extract the value.
	args[argname] = unescape(value);			// Store as a property.
    }
    return args;								// Return the object.
}

myArgs = getArgs();
//alert(myArgs.image);

document.writeln('<center>');
document.writeln('<table border="2" cellpadding="0" bgcolor="#000000" bordercolor="#000000" bordercolordark="#000000" bordercolorlight="#000000"><tr><td colspan="2" width="100%" bgcolor="#0000"><p align="center"><img SRC="pics/'+myArgs.image+'"></p></td></tr></table>');
document.writeln('<form><input type="button" onclick="self.close()" value="close window"></form>');


</script>

</body>
</html>
et dans le head du header.php j'ai rajouté:
Code:
<!-- DEBUT showimage -->
<SCRIPT LANGUAGE="JavaScript"
src="showpicture.js">
<!-- Begin
function showimage3(img)
  {openWindow('showpicture.html?image='+img,500,600)}// End -->
</script>
<!-- FIN showimage -->

Si j’ai bien compris, ce qu’il me manque c’est une histoire de Args, le myArgs.image même et ça, j’ai beau ne pas être trop blonde j’avoue être un poil perdue. Si quelqu’un s’ennuie en ce triste dimanche…

Ou alors j'ai fait totalement n'importe quoi aussi, c'est fort possible...
Il y a un article ne anglais la dessus : http://webmonkey.wired.com/webmonkey...tw=programming

A mon avis ton problème c'est que tu mélanges le PHP avec, fais le seulement en javascript pour commencer.

Edit: je confirme c'est ton header.php qui pose problème.

Remplace le par un machin en html dans ce genre :

Code:
<html>
<SCRIPT LANGUAGE="JavaScript" SRC="showpicture.js"  
type=text/javascript></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" type=text/javascript>
function showimage3(img)
  {
window.alert(img) ;
openWindow('showpicture.html?image='+img,500,600)}// End 
</script>
<body>
<a href="javascript:showimage3('test.jpg')">test</a> 
</body>
</html>
Citation :
Publié par Corten
Oublie les pop-ups, les navigateurs, même ie, n'aiment pas.
Ouvre juste l'image dans une nouvelle fenêtre c'est beaucoup mieux.
Nan ça m'arrange super pas d'ouvrir une nouvelle fenêtre toute moche.


@Olblach

Finalement j'ai essayé de faire au plus simple avec un popUp qui se met automatiquement à la taille de l'image genre comme ça:

Code:
<!-- DEBUT POPUP 0 img-->
<SCRIPT LANGUAGE="JavaScript">
<!--
function popUp0(img) { 
titre="Pic"; 
w=open("",'image','width=300,height=300,toolbar=no,scrollbars=no,resizable=1'); 
w.document.write("<HTML><HEAD><TITLE>"+titre+"</TITLE></HEAD>"); 
w.document.write("<SCRIPT language=javascript>function checksize() { if (document.images[0].complete) { window.resizeTo(document.images[0].width+10,document.images[0].height+30); window.focus();} else { setTimeout('checksize()',250) } }</"+"SCRIPT>"); 
w.document.write("<BODY onload='checksize()' onblur='window.close()' onclick='window.close()' leftMargin=0 topMargin=0 marginwidth=0 marginheight=0>");
w.document.write("<TABLE width='100%' border='0' cellspacing='0' cellpadding='0' height='100%'><TR>");
w.document.write("<TD valign='middle' align='center'><IMG src='/"+img+"' border=0 alt='Mon image'>"); 
w.document.write("</TD></TR></TABLE>");
w.document.write("</BODY></HTML>"); 
w.document.close(); 
} 
//-->
</SCRIPT><!-- FIN POPUP 0 img-->
Sauf que du coup j'ai un autre problème forcément, ça passe très bien sous IE par contre sous Firefox... Et je ne sais pas du tout comment gérer ça.
Oui alors là j'ai oublié, je crois qu'il faut utiliser la fonction getElementById à la place de tes "document.images[0]", quelque chose dans le style.
Code HTML:
<script language="JavaScript" type="text/JavaScript">
<!--
function AfficherImage(img){
  Image1= new Image();
  Image1.src=(img);
  Control(img);
}
function Control(img){
  if((Image1.width!=0)&&(Image1.height!=0)){
    VoirImage(img);
  }
  else{
    fonction="Control('"+img+"')";
    intervalle=setTimeout(fonction,20);
  }
}
function VoirImage(img){
  largeur=Image1.width+20;
  hauteur=Image1.height+20;
  proprietes="width="+ largeur +",height="+ hauteur;
  win=window.open(img,"",proprietes);
}
//-->
</script>
Code HTML:
<a href="javascript:AfficherImage('grande_image')"><img src='/petite_image' /></a>
Corten t'as presque la classe grave...

Sauf que maintenant ça marche parfaitement sous Firefox mais plus sous IE j'ai une erreur 403.

C'est possible de lui dire si c'est IE tu utilises ce code, si c'est Netcape celui-là ou je rêve et j'me démerde pour trouver autre chose?
Erreur 403 c'est un problème d'autorisation, ca vient du serveur et pas du script.
Mais pourquoi ca marche sur ff et pas ie, ca ce n'est pas normal ...

[Edit]Après réflexion c'est peut-etre l'anti pop-up de ie qui affiche la 403, mais c'est bizarre quand même.
Ca a pas l'air de venir de l'anti-popup. J'ai vérifié les propriétés des dossiers, des fichiers...Mais bon si c'était ça, comme tu dis, ça passerait pas non plus sous Firefox.

Du coup j'ai remis l'autre, c'est un peu moche mais au moins ça passe.
Evidemment chez toi ça marche hein. C'est toujours comme ça, monde de merde.

Du coup ça doit être dans les attributs de fichiers mais toutes les photos ont les mêmes et y'a pas de raison que tout marche sauf quand c'est un popup sous IE. C'est grave quand même.
Citation :
Publié par Nemi
Nan ça m'arrange super pas d'ouvrir une nouvelle fenêtre toute moche.
Tu sais une nouvelle fenetre ca se positionne et se resize

Exemple.

Code:
      <a href="javascript:void(0);" onclick="open('main/toto.html', 'Actualites', 'left=0, top=0, width=640, height=500, location=0, menubar=0, toollbar=0, scrollbars=1, resizable=1, status=0, history=0');"" onMouseOver="window.status='Toto';return(true);" onMouseOut="window.status='';return (true);"class=lien>Toto</a>
Pour la classe=lien c'est juste le nom que tu trouve dans ton CSS pour les couleurs des liens et les différentes effet.

Essaie comme ca
J'ai pondut ca il y a des années, et je m'en sert encore aujourd'hui.. et j'en suis parfaitement content

PS. Tout les zones ou tu voit marqué Toto tu insert ce que tu veut dedans, ce ne sont que des exemple.
PS2 . Le onMouseOver et onMouseOut peuvent être virer si tu ne veut pas utiliser ces deux fonctions ce qui donne.
Code:
       <a href="javascript:void(0);" onclick="open('main/toto.html', 'Actualites', 'left=0, top=0, width=640, height=500, location=0, menubar=0, toollbar=0, scrollbars=1, resizable=1, status=0, history=0');"class=lien>Toto</a>
@ Lorim: Oué mais le problème qui va se poser là du coup c'est que c'est un lien du genre chiant et impossible à retenir du moins pour moi.

Mais là j'ai besoin d'un lien simple que je puisse utiliser chaque fois que je veux linker juste une image sans avoir à créer un fichier html ou à ajouter des dizaines de paramètres. Donc le premier code va super bien, surtout qu'en plus la fenêtre se ferme dès qu'on clique ailleurs ou dessus... Le seul problème c'est l'affichage sous Firefox finalement. (Et sous IE un peu aussi sur certaines images il coupe le bas.

Je sais pas si je suis très claire là.
Pourquoi ce le rappeller?
Perso je ne m'en souvient pas

Il y a un truc qu'il toujours faire quand tu fait un site Web, c'est une page de "gabarit".
Cette page ne sert a qu'a une chose.... garder tout tes scripts et ta mise en page en exemple, pour ou cas ou tu as un trou de mémoire.

Ce que je t'ai passé vient de une de mes pages de gabarit (j'en ai plusieurs car certains script ne vont pas avec d'autre).

Fait juste une page avec ce lien dedans pour te souvenir, et quand tu as un trou de mémoire tu fait juste un copier coller comme je l'ai fait

Perso.. Ce script je ne le retappe jamais, je fais que du copier coller..
Et a la limite même pas besoin si tu utilise Ultra Edit
Tu n'as cas créer une Macro de remplacer pour le faire en auto ^^

Exemple.

A l'endroit ou tu veut insérer l'image au lieu de mettre un <a href blbalbla>Lien</a>
Tu met
*lien+
Après tu crée ta macro pour quel le "*" soit remplacer par le <a href que je t'ai donner et le + par le </a>

Comme cela tu peut mettre 50 lein vers des images, Ultra Edit te remplaceras tout en 2 secondes

Bien sur ce n'est qu'un exemple....
Mais un des truc que un de mes prof en info me disait toujours "Pourquoi ce faire chier a faire un tache répétitive a la main alors que l'on peut tout faire en automatique"

Sinon tu n'as pas besoin de créer un fichier HTML

Bon bouge pas je te fait un exemple vite fait.

[edit]
http://lorim.free.fr/Divers/exjs.html
Et il n'y a qu'une seule Page html ^^
Oué mais c'est pas comme si c'était un site web que tu modifies une fois par mois non plus.

Et aussi faut se souvenir que j'ai dit au départ que moi, je panne en rien en javascript, php, css tout ça et html je m'en sors quand j'ai un truc sous le nez mais de là à me parler de gabarit, de Ultra Edit et de *lien+
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés