Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ошибка при объявлении функции

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Albertino
Отправлено: 21 Июня, 2011 - 11:13:32
Post Id


Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Помогите разобраться в чем ошибка:
есть js код, когда я добавляю фун-цию wchatopen(), то возникает ошибка chatShowNewElement is not defined (так пишет firebug), если закомментировать функцию wchatopen, то ошибки ни какой не возникает и работает все как надо. В чем может быть проблема?
Обявление функции chatShowNewElement строка 101
Ну и собственно сам код:
CODE (javascript):
скопировать код в буфер обмена
  1. $jj = jQuery.noConflict();
  2. // открытие окна чата
  3. function wchatopen(id){
  4.         window.open('http://behappy2day.com/chat/index.php?gID='+id,
  5.                                 'chatWin',
  6.                                 'top=15,
  7.                                 left=20,
  8.                                 menubar=0,
  9.                                 toolbar=0,
  10.                                 location=0,
  11.                                 directories=0,
  12.                                 status=0,
  13.                                 scrollbars=0,
  14.                                 resizable=0,
  15.                                 width=600,
  16.                                 height=600'
  17.                                  );
  18.         return;
  19. }
  20.  
  21. function getElementSizes(element)
  22. {
  23.         var width = element.offsetWidth;
  24.         var height = element.offsetHeight;
  25.         return {"width": width, "height": height};
  26. }
  27.  
  28. // удаление элемента DOM
  29. function removeElement(element)
  30. {
  31.         if(element)
  32.         {
  33.                 element.parentNode.removeChild(element);
  34.         }
  35. }
  36.  
  37. function getClientWidth()
  38. {
  39.         return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
  40. }
  41.  
  42. function getClientHeight()
  43. {
  44.         return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
  45. }
  46.  
  47. function chatCreateMainContainer()
  48. {
  49.         var mainContainer = document.getElementById("chat_main_container");
  50.  
  51.         if(mainContainer != null)
  52.         {
  53.                 // если контейнер уже существует, то просто возвращаем ссылку на него
  54.                 return mainContainer;
  55.         }
  56.         else
  57.         {
  58.                 // создаем элемент Div, который будет служить основным контейнером для всех остальных элементов
  59.                 var body = document.getElementsByTagName("body")[0];
  60.                 var newDiv = document.createElement("div");
  61.                 body.appendChild(newDiv);
  62.  
  63.                 newDiv.id = "chat_main_container";
  64.  
  65.                 // ширина основного контейнера
  66.                 var containerWidth = 230;
  67.                 newDiv.style.width = containerWidth+"px";
  68.                 newDiv.style.border = "1px solid #5AAED6"; //"1px solid #0000FF";
  69.                 newDiv.style.borderCollapse = "collapse";
  70.                 newDiv.style.zIndex = 10000;
  71.                 newDiv.style.display = "none";
  72.                 newDiv.style.backgroundColor = "#ffffff";
  73.  
  74.                 // позиционирование основного контейнера на видимой области браузера (правый нижний угол)
  75.                 newDiv.style.position = "fixed";
  76.                 newDiv.style.bottom = "10px";
  77.                 newDiv.style.right = "3px";
  78.  
  79.                 // определяем первоначальный блок для функций Minimize и Maximize
  80.                 newDiv.innerHTML = '<div style="height: 20px; background-color: #5AAED6; text-align: right; font-weight: bold; padding-right: 3px; color: #FFFFFF; cursor: pointer; display: none;" id="r_block" onclick="chatMiniMaxi();">Minimize</div>';
  81.  
  82.  
  83.                 // это общий суб-контейнер для блоков-элементов с приглашениями к чату
  84.                 newDiv.innerHTML += '<div id="visual_elements"></div>';
  85.  
  86.                 return newDiv;
  87.         }
  88. }
  89.  
  90.  
  91. function sendTest()
  92. {
  93.         requestProcess("/xml.php", "?v=23", chatShowNewElement, true);
  94. }
  95.  
  96.  
  97.  
  98. // счетчик отображаемых элементов (переменная с глобальной областью видимости)
  99. chatElementCounter = 0;
  100.  
  101. function chatShowNewElement()
  102. {
  103.         if(requestObject.readyState == 4)
  104.         {
  105.                 if(requestObject.status == 200)
  106.                 {
  107.                         // определяем вернул ли запрос данные для отображения
  108.                         var name = requestObject.responseXML.getElementsByTagName("name").item(0).firstChild.data;
  109.  
  110.                         // ID нужен для того, чтобы определить не был ли уже показан этот элемент
  111.                         var id = requestObject.responseXML.getElementsByTagName("id").item(0).firstChild.data;
  112.  
  113.                         var se = document.getElementById("e_"+id);
  114.  
  115.  
  116.                         // если количество уже отображаемых элементов не превышает 3, то добавляем новый элемент, если превышает, то ничего не делаем
  117.                         if(chatElementCounter < 3 && name != "empty" && se == null)
  118.                         {
  119.                                 var mainContainer = chatCreateMainContainer();
  120.  
  121.                                 // получаем данные из XML-документа (который получили от сервера)
  122.                                 var name = requestObject.responseXML.getElementsByTagName("name").item(0).firstChild.data;
  123.                                 var city = requestObject.responseXML.getElementsByTagName("city").item(0).firstChild.data;
  124.                                 var age = requestObject.responseXML.getElementsByTagName("age").item(0).firstChild.data;
  125.                                 var mess = requestObject.responseXML.getElementsByTagName("mess").item(0).firstChild.data;
  126.                                 var image = requestObject.responseXML.getElementsByTagName("image").item(0).firstChild.data;
  127.                                 var id = requestObject.responseXML.getElementsByTagName("id").item(0).firstChild.data;
  128.  
  129.                                 document.getElementById("chat_main_container").style.display = "block";
  130.                                 $jj("#r_block").fadeIn(700);
  131.  
  132.  
  133.                                 // создаем HTML-код нового элемента
  134.                                 var newElement = '<div style="display: none; margin: 6px;" id="e_'+id+'"><table border="0" cellspacing="0" cellpadding="0">';
  135.                                 newElement += '<tr>';
  136.  
  137.                                 newElement += '<td align="center" style="padding-right: 5px;"><img src="'+image+'"></td>';
  138.                                 newElement += '<td align="left" valign="top"><div style="height: 134px; font-size: 13px; font-family: Arial, san-serif; overflow: hidden;"><b>'+name+'</b> (ID: '+id+')<br />Age: '+age+'<br />'+city+'<div style="margin-top: 5px;">'+mess+'</div></td>';
  139.  
  140.                                 newElement += '</tr>';
  141.  
  142.                                 newElement += '<tr>';
  143.  
  144.                                 newElement += '<td align="center" style="padding-bottom: 5px;"><div style="border: 1px solid #D94A24; height: 5px; width: 90%;"><div id="c_'+id+'" style="background-color: #D94A24; overflow: hidden; height: 5px; margin-right: 0%;"> </div></div><a href="/" style="text-decoration: none; color: #5AAED6;" onclick="chatHideElement(\''+id+'\'); return false;">Close</a></td>';
  145.                                 newElement += '<td align="center" style="padding-bottom: 5px;"><button onclick="wchatopen(\''+id+'\')">Start Chat Now</button><fromt action="/" method="post"><input type="hidden" value="open" name="s_'+id+'" id="s_'+id+'" /></form></td>';
  146.  
  147.                                 newElement += '</tr>';
  148.  
  149.                                 newElement += '</table></div>';
  150.  
  151.                                 document.getElementById("visual_elements").innerHTML += newElement;
  152.  
  153.                                 // если в блоке больше одного элемента, то добавляем разграничивающую линию (верх)
  154.                                 if(chatElementCounter > 0)
  155.                                 {
  156.                                         var nEl = document.getElementById("e_"+id);
  157.                                         nEl.style.borderTop = "1px silver dotted";
  158.                                         nEl.style.paddingTop = "10px";
  159.                                 }
  160.  
  161.                                 $jj("#e_"+id).slideDown(600);
  162.  
  163.                                 // увеличиваем счетчик отображаемых элементов
  164.                                 chatElementCounter++;
  165.  
  166.                                 // запускаем таймер для закрытия блока (после того, как пройдет 1 минута)
  167.                                 evalCloseTimer(500, id);
  168.                         }
  169.  
  170.                 }
  171.                 else
  172.                 {
  173.                         alert("Error of remote server connect - code "+requestObject.status);
  174.                 }
  175.         }
  176. }
  177.  
  178. function chatMiniMaxi()
  179. {
  180.         var rBlock = document.getElementById("r_block");
  181.  
  182.         if(rBlock.innerHTML == "Minimize") rBlock.innerHTML = "Maximize";
  183.         else rBlock.innerHTML = "Minimize";
  184.  
  185.         $jj("#visual_elements").slideToggle(700);
  186. }
  187.  
  188. function chatHideElement(elementID)
  189. {
  190.         $jj("#e_"+elementID).slideUp(700);
  191.  
  192.         // определяем статус блока (закрыт или открыт)
  193.         var status = document.getElementById("s_"+elementID);
  194.  
  195.         if(status.value == "open")
  196.         {
  197.                 status.value = "closed";
  198.  
  199.                 // уменьшаем счетчик отображаемых элементов (если он уже не был закрыт каким-либо другим путем)
  200.                 chatElementCounter--;
  201.  
  202.                 setTimeout(function () {removeElement(document.getElementById("e_"+elementID));}, 700);
  203.         }
  204.  
  205.  
  206.         if(chatElementCounter < 1)
  207.         {
  208.                 $jj("#chat_main_container").fadeOut(700);
  209.         }
  210. }
  211.  
  212. function evalCloseTimer(timeout, elementID)
  213. {
  214.         try
  215.         {
  216.                 var intervalID = setInterval(function () {
  217.  
  218.                         var element = document.getElementById("c_"+elementID);
  219.                         var i = parseInt(element.style.marginRight, 10);
  220.  
  221.                         if(i < 100)
  222.                         {
  223.                                 i += 1.7;
  224.                                 element.style.marginRight = i+"%";
  225.                         }
  226.                         else
  227.                         {
  228.                                 clearInterval(intervalID);
  229.                                 chatHideElement(elementID);
  230.                                 return;
  231.                         }
  232.  
  233.                         }, timeout);
  234.         }
  235.         catch(e) {}
  236. }
  237.  
 
 Top
EuGen Администратор
Отправлено: 21 Июня, 2011 - 11:19:03
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Сделайте передачу параметров в window.open однострочной, иначе это синтаксически неверно.
Подозреваю, интерпретатор останавливается на этом месте и потому дальнейшее не срабатывает.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Albertino
Отправлено: 21 Июня, 2011 - 11:25:25
Post Id


Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




EuGen пишет:
Сделайте передачу параметров в window.open однострочной, иначе это синтаксически неверно.
Подозреваю, интерпретатор останавливается на этом месте и потому дальнейшее не срабатывает.

Спасибо, помогло
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB