[Résolu] Faire suivre une variable sur un .js

WRInaute accro
Je souhaiterais transmettre la variable $row->title au .js ci-dessous pour modifier le titre par défaut de chaque image (en rouge dans le code).
Il s'agit d'une image qui s'ouvre dans un popup à partir de la page contenant $row->title
var AutoClose = true;

function showimgogl(url, picwidth, picheight) {

PositionX = 100;
PositionY = 100;

factor = 0;
scr_x = screen.width - 20;
scr_y = screen.height - 60;
if (scr_x <= picwidth || scr_y <= picheight) {
factor_x = scr_x/picwidth;
factor_y = scr_y/picheight;

if (factor_x < factor_y) {
factor = factor_x;
} else {
factor = factor_y;
}
picwidth = picwidth*factor;
picheight = picheight*factor;

}

defaultWidth = picwidth;
defaultHeight = picheight;



// Do not edit below this line...
// ================================
if (parseInt(navigator.appVersion.charAt(0))>=4){
var isNN=(navigator.appName=="Netscape")?1:0;
var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;
var optNN='scrollbars=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY;
// var optIE='scrollbars=no,width=150,height=100,left='+PositionX+',top='+PositionY;
var optIE='scrollbars=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY;
}

imageURL=url; imageTitle="Ad picture";
if (isNN){imgWin=window.open('about:blank','',optNN);}
if (isIE){imgWin=window.open('about:blank','',optIE);}
with (imgWin.document) {
writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');writeln('<sc'+'ript>');
writeln('var isNN,isIE;');writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
writeln('isNN=(navigator.appName=="Netscape")?1:0;');writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
writeln('function reSizeToImage(){');writeln('if (isIE){');
writeln('window.resizeTo('+defaultWidth+','+defaultHeight+');');
writeln('width='+defaultWidth+'-(document.body.clientWidth-document.images[0].width);');
writeln('height='+defaultHeight+'-(document.body.clientHeight-document.images[0].height);');
//writeln('window.resizeTo(100,100);');
//writeln('width=100-(document.body.clientWidth-document.images[0].width);');
//writeln('height=100-(document.body.clientHeight-document.images[0].height);');
writeln('window.resizeTo(width,height);}');writeln('if (isNN){');
writeln('window.innerWidth=document.images["George"].width;');writeln('window.innerHeight=document.images["George"].height;}}');
writeln('function doTitle(){document.title="'+imageTitle+'";}');writeln('</sc'+'ript>');
if (!AutoClose) writeln('</head><body bgcolor=FFFFFF scroll="no" onload="reSizeToImage();doTitle();self.focus()">')
else writeln('</head><body bgcolor=FFFFFF scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');
writeln('<img name="George" src="'+imageURL+'" style="display:block"></body></html>');
close();
}
}
Je sais, je suis chi..t ce soir :)
Un chti coup de main?
 
WRInaute discret
Peut être, et y' a surement mieux, réécrire en php pour pouvoir transmettre la variable.
Style:
$script = "<script type=\"text/javascript\"> et_bla_bla_bla_le_début_du_script" .$title. "bla_bla_bla_la_fin_du_script</script>";

echo $script;

En pensant à échapper les guillemets doubles, et bien sur renomer la page en .php

Mais bon, c'est pas très joli, il doit y avoir mieux
 
WRInaute discret
Si c'est possible, mais ça me semble plus compliquer:
Il faut passer la variable dans l'url après un "?" (comme php)
ensuite:
var variable= location.search; ça récupère tout après l'url
variable = location.search.substring(1);Pour supprimer le "?"
variable = variable.split("&");Pour avoir un tableau des variables (si y'en a plusieur)
variable[0] contient la première variable, ect...
unescape(variables[0]); remplace les exadécimales des caractères spéciaux.
 
WRInaute accro
J'ai essayé ceci.

Le lien original qui appelle la pop-up:
<a href="javascript:showimgogl('<?php echo $mosConfig_live_site."/components/com_classifieds/adimages/".$img; ?>',500,500)">

Le lien modifier qui passe la variable:
<a href="javascript:showimgogl('<?php echo $mosConfig_live_site."/components/com_classifieds/adimages/".$img; ?>',500,500,'<? echo $row->title; ?>')">


Le .js modifié:

function showimgogl(url, picwidth, picheight, $row->title) {
...
/* imageTitle="Ad picture"; remplacé par ceci */
imageTitle=$row->title;


Le problème est que mon .js ne semble pas reconnaître la variable.
Caractère $ réservé en js?
Erreur de syntaxe?
 
WRInaute discret
J'avais pas pigé que ton lien était en js.
écris function showimgogl(url, picwidth, picheight, titre_image)
et imageTitle = titre_image;
Ca doit passer tout seul
Pas de $ pour les variables en js
 
Discussions similaires
Haut