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 :: Вернуть переменную из события window.onload

 PHP.SU

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


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

> Без описания
zypikov
Отправлено: 14 Августа, 2012 - 23:10:37
Post Id



Частый гость


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


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




Вообщем, массив инициалузуется в глобальном объекте window по событию onload.
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. window.onload = function(){
  3.     //здесь чего-то делаем.. и допустим формируем массив mas
  4.       var mas = new Array()
  5.            
  6. }
  7.  


Как теперь сделать так чтобы этот массив был доступен функции
CODE (javascript):
скопировать код в буфер обмена
  1. someFunc(par1,par2,mas){}
. Эту функцию мне нужно вызывать не при событии window.onload, а допустим при клике мышкой на документе?


-----
У всего есть обратная сторона.
 
 Top
IllusionMH
Отправлено: 14 Августа, 2012 - 23:24:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




zypikov, имена в глобальном пространстве - свойства объекта window
CODE (javascript):
скопировать код в буфер обмена
  1. var mas;
  2. window.onload = function(){
  3.   //здесь чего-то делаем..
  4.   mas = [];
  5. }

или
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. window.onload = function(){
  3.    window.mas = [];
  4. }
 
 Top
zypikov
Отправлено: 17 Августа, 2012 - 00:33:35
Post Id



Частый гость


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


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




да, забыл совсем, спасибо)

Вопрос не в эту тему но всеж таки

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var masssivTreeTog = document.getElementsByName('treeTog');
  3.         for(var i = 0; i<=masssivTreeTog.length-1; i++){
  4.            for (var k = 0; k<=masssivTreeTog[i].childNodes.length-1; k++){
  5.               if(masssivTreeTog[i].childNodes[k].id == 'rootContainer') {
  6.                var root = masssivTreeTog[i].childNodes[k]
  7.                var attr = root.getAttribute('status')
  8.                   if(attr == null) {
  9.                     var status = '0';
  10.                     if(root.firstChild.nodeType == 1){
  11.                       root.firstChild.setAttribute('status', status) }
  12.                       window.masCook[i] = '::' + i + '|' + status + '|'
  13.  
  14.                   }
  15.              }
  16.         }
  17.        }
  18.  

В самом внутренним if-условии, если его опустить, браузеры кроме ie ругаются, что атрибут нельзя установить текстовой ноде. Как мне получить сам элемент для установки атрибута?. Может объяснение глупое, но думаю суть понятна


-----
У всего есть обратная сторона.
 
 Top
IllusionMH
Отправлено: 17 Августа, 2012 - 01:08:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




zypikov, было бы проще на конкретном примере, или хотя бы дерево увидеть(со всеми переносами строк и пробелами)
Просто если в коде идет
CODE (html):
скопировать код в буфер обмена
  1. <div id="rootContainer"><!-- тут перенос строки -->
  2. <div class="rootChild">

то все браузеры кроме IE посчитают перенос строки как TEXT_NODE и нужно брать следующий (возможно используя nextSibling) элемент.
Возможно это решение, т.к. вопроса я до конца не понял.
 
 Top
zypikov
Отправлено: 18 Августа, 2012 - 18:47:34
Post Id



Частый гость


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


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




Да все верно. Я схалтурил и записал html-текст одной строкой. Все заработало.
А вообще это обычное js-дерево

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div onclick="tree_toggle(arguments[0],this)" style="margin-left: 5px" name = "treeTog">
  3.   <ul class="Container" id = "rootContainer">
  4.     <li class="Node IsRoot ExpandClosed IsLast">
  5.     <div class="Expand"></div>
  6.     <div class="Content">Места</div>
  7.     <ul class="Container">
  8.       <li class="Node ExpandLeaf">
  9.         <div class="Expand"></div>
  10.         <div class="Content design"><a href = "%%_Url%%?act=house" id = "header3" class = ""><b>Базы отдыха</b></a></div>
  11.       </li>
  12.       <li class="Node ExpandLeaf">
  13.         <div class="Expand"></div>
  14.         <div class="Content design"><a href = "%%_Url%%?act=part_house" id = "header3" class = ""><b>Части</b></a></div>
  15.       </li>
  16.       <li class="Node ExpandLeaf sLast IsLast">
  17.         <div class="Expand"></div>
  18.         <div class="Content design"><a href = "%%_Url%%?act=ground_area" id = "header3" class = ""><b>Санатории</b></a></div>
  19.       </li>
  20.     </ul>
  21.   </li>
  22. </ul>
  23. </div>
  24.  


Это неисправленный вариант

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div onclick="tree_toggle(arguments[0],this)" style="margin-left: 5px" name = "treeTog"><ul class="Container" id = "rootContainer"><li class="Node IsRoot ExpandClosed IsLast">
  3.     <div class="Expand"></div>
  4.     <div class="Content">Места</div>
  5.     <ul class="Container">
  6.  
  7.       <li class="Node ExpandLeaf">
  8.         <div class="Expand"></div>
  9.         <div class="Content design"><a href = "%%_Url%%?act=house" id = "header3" class = ""><b>Базы отдыха</b></a></div>
  10.       </li>
  11.       <li class="Node ExpandLeaf">
  12.         <div class="Expand"></div>
  13.         <div class="Content design"><a href = "%%_Url%%?act=part_house" id = "header3" class = ""><b>Части</b></a></div>
  14.       </li>
  15.       <li class="Node ExpandLeaf sLast IsLast">
  16.         <div class="Expand"></div>
  17.         <div class="Content design"><a href = "%%_Url%%?act=ground_area" id = "header3" class = ""><b>Санатории</b></a></div>
  18.       </li>
  19.     </ul>
  20.   </li>
  21. </ul>
  22. </div>
  23.  


Это исправленный


-----
У всего есть обратная сторона.
 
 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