Bonjour,
Je rencontre un probléme sur la création d'un objet perso "popup". Plus précisement, j'ai créé un objet(code ci-dessous) et je n'arrive pas à partager mes variables dans la totalité des méthodes de mon objet. Exemple, mon objet posséde une variable "url" créer dans mon constructeur. J'arrive à l'utiliser dans mes "getters" ainsi que dans ma méthode "createPopup()" mais impossible de la récupérer dans mes autres méthodes(boutonPresse(); boutonRelache etc...). Question: pourquoi les variables définies dans mon constructeurs ne sont-elles pas visibles dans toute mes méthodes? Merci
/* Constructeur */
function Popup(title,url,x,y,w,h) {
//Attributs
this.title = title;
this.url = url;
this.x = x; //Position du popup
this.y = y;
this.xMouse = 0; //Position de la souris
this.yMouse = 0;
this.origine_x; //Deplacement
this.origine_y;
this.w = w;
this.h = h;
this.clicEnCours = false;
this.createPopup();
}
/* Methods Getters */
Popup.prototype.getTitle = function() {
return this.title ;
}
Popup.prototype.getX = function() {
return this.x;
}
Popup.prototype.getY = function() {
return this.y;
}
Popup.prototype.getW = function() {
return this.w;
}
Popup.prototype.getH = function() {
return this.h;
}
/* */
Popup.prototype.createPopup = function() {
//A) Creer une div en position absolute
var div = document.createElement("div");
div.id = "popup";
div.style.position = "absolute";
div.style.width = this.w;
div.style.height = this.h;
div.style.top = this.y;
div.style.left = this.x;
div.style.background = "red";
//B) Creer le titre de la popup
var title = document.createElement("div");
var textNode = document.createTextNode(this.title);
title.style.background = "gray";
//C) Creer l'Iframe
var iframe = document.createElement("iframe");
iframe.src = this.url;
iframe.style.width = "100%";
iframe.style.height = "100%";
//D) Ajout des elements dans la page courante
title.appendChild(textNode);
div.appendChild(title);
div.appendChild(iframe);
document.body.appendChild(div);
alert(this.title);
//E) Gestion des evenements
document.body.onmousemove = this.position;
title.onmousedown = this.boutonPresse;
title.onmouseup = this.boutonRelache;
}
Popup.prototype.boutonPresse = function (){
this.origine_x = this.xMouse - this.x;
this.origine_y = this.yMouse - this.y;
this.clicEnCours = true;
}
Popup.prototype.boutonRelache = function ()
{
this.origine_x = this.x - this.xMouse;
this.origine_y = this.y - this.yMouse;
this.clicEnCours = false;
}
Popup.prototype.position = function (e) {
this.xMouse = event.x + document.body.scrollLeft;
this.yMouse = event.y + document.body.scrollTop;
//Deplacement si clickEnCours
if (this.clicEnCours)
{
this.xMouse = this.x - this.origine_x;
this.yMouse = this.y - this.origine_y;
document.getElementById("popup").style.left = this.xMouse;
document.getElementById("popup").style.top = this.yMouse;
}
Partager