Показать сообщение отдельно
  #1 (permalink)  
Старый 07.07.2008, 10:15
Новичок на форуме
Отправить личное сообщение для nolka Посмотреть профиль Найти все сообщения от nolka
 
Регистрация: 03.07.2008
Сообщений: 8

Как сделать окошко с возможностью изменения его содержимого?
приведу код своего класса окошка:
function MsgWnd(wndName,closeButtonEnabled)
{
	this.name=wndName;
    this.top=20;
    this.left=20;
    this.width;
    this.height;
    this.maxWidth=580;
    this.maxHeight;
    this.caption="";
    this.closeButtonEnabled=closeButtonEnabled;

    	this.main = create("div");
		this.main.className="container hiddenbox";
		this.main.setAttribute("id",this.name);
		this.main.setAttribute("name",this.name);

			this.closeh = create("div");
			this.closeh.className="title";
			this.closeh.style.textAlign="right";
			this.closeh.style.padding="1px";

			this.closeimg = create("img");
			this.closeimg.setAttribute("src","skin/loadbar.gif");
			if(this.closeButtonEnabled)
		{
			this.closeimg.setAttribute("src","skin/cn.png");
			this.closeimg.setAttribute("onMouseMove",'this.src="skin/ch.png"');
			this.closeimg.setAttribute("onMouseOut",'this.src="skin/cn.png"');
			this.closeimg.setAttribute("onClick","closeWnd('"+this.name+"');");
		}
			this.closeh.appendChild(this.closeimg);


		this.title = create("div");
		this.title.className="title fleft";
		this.title.setAttribute("onmousedown","dragStart(event, '"+this.name+"');");
		this.title.setAttribute("id","title");
		this.title.setAttribute("name","title");


		this.titlecontainer = create("div");
		this.titlecontainer.className="title";
		this.titlecontainer.appendChild(this.title);
		this.titlecontainer.appendChild(this.closeh);


		this.content = create("div");
		this.content.className="content";
		this.content.setAttribute("id","content");
		this.content.setAttribute("name","content");

    this.setTitle=function(text)
    {
    	this.caption=text;
    	this.title.innerHTML=this.caption;
    }

	this.show=function(text)
	{
		this.content.innerHTML=text;

		this.main.className="container";
		this.main.style.display="block";
		this.main.style.position="absolute";
		this.main.style.top=(document.body.clientHeight/2)-150;
		this.main.style.left=(document.body.clientWidth/2)-150;
		this.main.style.maxWidth=this.maxWidth;
		this.main.style.maxHeight=this.maxHeight;
		this.main.style.width=this.width;
		this.main.style.height=this.height;

		this.main.appendChild(this.titlecontainer);
		this.main.appendChild(this.content);


		document.getElementsByTagName("body")[0].appendChild(this.main);
	}

   	this.updateContent = function(content)
   	{
   		wnd=document.getElementById(this.name);
   		c=wnd.getElementById('content');
   		c.innerHTML='content';
   	}
}

как можно понять из всего этого кода, окошко выглядит очень просто.
создается див, в него вкладываются еще 2 дива:
1 - заголовок
2 - тело окошка, в котором отобрадаем какой либо контент.

с жабоскриптом знакомиться основательно начал совсем недавно, поэтому я заглох на методе this.updateContent. Помогите пожалуйста довести до ума, чтобы после создания окошка можно было менять его содержимое?

создаю окошко вот так:
function ShowMessage(title,text)
{
	wnd = new MsgWnd("messageWnd"+Math.random(999),true);
	wnd.setTitle(title);
	wnd.show(text);
	return wnd.name;
}

т.е. после создания окошка у меня есть ссылка, по которой можно выцепить главный див.

вот так вывожу какое либо сообщение в окошке:
imgUploaderWnd=ShowMessage('Информация','тестовое сообщение');


но при попытке выполнить такой код:
imgUploaderWnd.updateContent('yjdjt cjlth;bvjt');


вылазит ошибка: imgUploaderWnd.updateContent is not a function

помогите пожалуйста кто чем может.. может быть я с классом намудрил чего то?
Ответить с цитированием