Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Не работает js скрипт при <body onLoad="initialize()">

Ответить
Настройки темы
[решено] Не работает js скрипт при <body onLoad="initialize()">

Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Скрипт:
Код: Выделить весь код
<!--
function dynamicSelect(id1, id2) {
// Сперва необходимо проверить поддержку W3C DOM в браузере
 if (document.getElementById && document.getElementsByTagName) {
// Определение переменных, ссылающихся на списки
  var sel1 = document.getElementById(id1);
  var sel2 = document.getElementById(id2);
// Клонирование динамического списка
  var clone = sel2.cloneNode(true);
// Определение переменных для клонированных элементов списка
  var clonedOptions = clone.getElementsByTagName("option");
// Вызов функции собирающей вызываемый список
  refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
// При изменении выбранного элемента в первом списке: // вызов функции пересобирающей вызываемый список
  sel1.onchange = function() {
  refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
  }
 }
}
// Функция для сборки динамического списка
function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {
// Удаление всех элементов динамического списка
 while (sel2.options.length) {
  sel2.remove(0);
 }
 var pattern1 = /( |^)(select)( |$)/;
 var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");

// Перебор клонированных элементов списка

 for (var i = 0; i < clonedOptions.length; i++) {

// Если название класса клонированного option эквивалентно "select" // либо эквивалентно значению option первого списка

  if (clonedOptions[i].className.match(pattern1) ||
  clonedOptions[i].className.match(pattern2)) {

// его нужно клонировать в динамически создаваемый список

   sel2.appendChild(clonedOptions[i].cloneNode(true));
  }
 }
}
window.onload = function() {
	dynamicSelect("A", "B");
	dynamicSelect("B", "C");
}
//-->
Для коректной работы Google Maps мне необходим атрибут в боди - onLoad="initialize()"
Но с ним не работает вышеупомянутый скрипт (( Что делать?

-------
Мой блог Web Development


Отправлено: 17:16, 01-04-2010

 

Deadooshka


Сообщения: 2517
Благодарности: 692

Профиль | Отправить PM | Цитировать


initialize() можно перенести в window.onload, на последнее место (хотя можно поэкспериментировать)...
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:29, 01-04-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Да, кстати. функция инициалайз:

Код: Выделить весь код
<script type="text/javascript">
function initialize() {
    var latlng = new google.maps.LatLng(50.414527, 30.528978);
	//var image = 'flag.png';
	var myOptions = {
      zoom: 16,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.HYBRID
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
	//var beachMarker = new google.maps.Marker({
    //    position: latlng,
    //    map: map,
    //    icon: image
    //});
  }
</script>

-------
Мой блог Web Development


Отправлено: 17:39, 01-04-2010 | #3


Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Да. сработало все.
Добавил <script language="javascript">window.onload = initialize();</script> в конец.
Спасибо большое

-------
Мой блог Web Development


Отправлено: 19:32, 01-04-2010 | #4


Deadooshka


Сообщения: 2517
Благодарности: 692

Профиль | Отправить PM | Цитировать


я про эту функцию (3 строкой добавить если):
Цитата Artem-Samsung:
window.onload = function() {dynamicSelect("A", "B"); dynamicSelect("B", "C"); } »
Код: Выделить весь код
window.onload = function() {
	dynamicSelect("A", "B");
	dynamicSelect("B", "C");
	initialize();//сюда
}

Отправлено: 21:10, 01-04-2010 | #5


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день! У меня почти такая же проблема, но в виду моей неопытности (разбираться с этим делом я начал только с сегодняшнего утра))) решить самостоятельно мне ее не удалось. Работает только один скрипт из двух (первый выводит пользовательскую Яндекс.карту, второй - выпадающее меню), по одному работают хорошо. Буду очень признателен за помошь!
Код: Выделить весь код
<script src="http://api-maps.yandex.ru/1.1/index.xml?key=AFPxDEwBAAAAULUMHwIAVKW8xZQxVL0kFj4lHUsAoB2I_gMAAAAAAAAAAAAmdPI7vVsRLfKXb1_JHhJsSRZM4w==" type="text/javascript"></script>
<script type="text/javascript">// <![CDATA[
        window.onload = function () {
            var options = {
                    tileUrlTemplate: "http://interaktivecard.com/images/maps/%z/tile-%x-%y.png",
                    controls: {
                        typeControl: true,
                        miniMap: true,
                        toolBar: true,
                        scaleLine: true
                    },
                    scrollZoomEnabled: false,
                    mapCenter: new YMaps.GeoPoint(33.8674398742517, 44.7531052865182),
                    backgroundMapType: YMaps.MapType.MAP,
                    mapZoom: 14,
                    isTransparent: true,
                    smoothZooming: false,
                    layerKey: "my#layer",
                    mapType: {
                        name: "Схема",
                        textColor: "#000000"
                    },
                    copyright: ""
                },
                map = new YMaps.Map(document.getElementById("YMapsID")),
                myData = new YMaps.TileDataSource(options.tileUrlTemplate, options.isTransparent, options.smoothZooming);

            myData.getTileUrl = function (tile, zoom) {
                return this.getTileUrlTemplate().replace(/%x/i, tile.x).replace(/%y/i, tile.y).replace(/%z/i, zoom);
            }

            var MyLayer = function () {
                return new YMaps.Layer(myData);
            }
            YMaps.Layers.add(options.layerKey, MyLayer);

            var mapLayers = options.backgroundMapType ? options.backgroundMapType.getLayers() : [],
                myMapType = new YMaps.MapType(YMaps.jQuery.merge(mapLayers, [ options.layerKey ]), options.mapType.name, { textColor: options.mapType.textColor });

            map.setCenter(options.mapCenter, options.mapZoom, myMapType);
            if (options.copyright) {
                map.addCopyright(options.copyright);
            }

            if (options.controls.typeControl) {
                map.addControl(new YMaps.TypeControl([ myMapType, YMaps.MapType.MAP, YMaps.MapType.SATELLITE, YMaps.MapType.HYBRID ], [1, 2, 3]));
            }
         
            if (options.controls.miniMap) {
                map.addControl(new YMaps.MiniMap());
            }
            if (options.controls.toolBar) {
                map.addControl(new YMaps.ToolBar());
            }
         
            if (options.scrollZoomEnabled) {
                map.enableScrollZoom();
            }
            map.addControl(new YMaps.SmallZoom());


  // Метка номер один 
     
var placemark = new YMaps.Placemark(new YMaps.GeoPoint(33.869136241394116, 44.7623886062664), {style: "default#dpsIcon"});
placemark.name = "ДПС"; // Заголовок балуна
placemark.description = "<div>Здесь находится пост ДПС</div>"; // Текст балуна
placemark.setBalloonContent('<div style="»text-align:center»" mce_style="»text-align:center»"><b>Пост ДПС</b><br>Здесь находится пост ДПС</div>');
map.addOverlay(placemark);
placemark.balloonOpen();
}
// ]]></script>
<form>
<p><span style="font-size: large;"><strong><span style="color: #800000;">Бахчисарай </span></strong></span></p>
<p><span style="font-size: small;"><em><span style="color: #800000;"><strong><span style="color: #999999;"><br /></span></strong></span></em></span></p>
<p><select id="Country" name="Country"><option value="select">Выберите раздел...</option> <option value="gos">Гос.предприятия</option> <option value="chast">Частные предприятия</option> <!-- <option value="org">Общественные организации</option> --> </select> <select id="City" name="City"><option class="select" value="select">Выберите подраздел...</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/49.html">Государсвенная и городская структура</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/50.html">Детские учреждения</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/51.html">Жилищно-коммунальное хозяйство</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/52.html">Культура и искусство</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/53.html">Медицинские учреждения</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/54.html">Образование и учебные заведения</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/55.html">НИИ</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/56.html">Почта, телефон, телеграф</option><option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/57.html">Религиозные организации</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/58.html">Землепользование</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/59.html">Автомобили, СТО</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/60.html">Агропромышленный комплекс</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/61.html">Безопасность - организации, оборудование</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/62.html">Организации ВЭД</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/63.html">Вторичные ресурсы</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/64.html">Исследование рынка</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/65.html">Компьютеры. Оргтехника</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/66.html">Легкая и текстильная промышленность</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/67.html">Лесная, деревообрабатывающая пром-ть</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/68.html">Мебель, интерьер</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/69.html">Медицинские товары и услуги</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/70.html">Металлы, металлообработка, машиностроение</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/71.html">Оборудование</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/72.html">Общественное питание</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/73.html">Продукты питания: производство, ОПТ, розница</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/74.html">Радиопромышленность</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/75.html">Рекламно-информационная деятельность</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/76.html">Розничные торговые организации</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/77.html">Связь</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/78.html">СМИ</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/79.html">Строительство и материалы</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/80.html">Судостроение, судоремонт</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/81.html">Товары для животных</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/82.html">Товары народного потребления</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/83.html">Торжественные мероприятия</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/84.html">Трудоустройство</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/85.html">Транспорт</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/86.html">Туризм, спорт, отдых</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/87.html">Услуги</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/88.html">Химическая продукция</option> <!-- <option class="org" value="Minsk">Все остальное</option> <option class="org" value="Bobruisk">...и так далее</option> --> </select> <input onclick="top.location.href = this.form.City.options[this.form.City.selectedIndex].value" type="button" value="Ok" /></p>
<p> </p>
</form>
<script type="text/javascript">// <![CDATA[
function dynamicSelect(id1, id2) {

// Сперва необходимо проверить поддержку W3C DOM в браузере

 if (document.getElementById && document.getElementsByTagName) {

// Определение переменных, ссылающихся на списки

  var sel1 = document.getElementById(id1);
  var sel2 = document.getElementById(id2);

// Клонирование динамического списка

  var clone = sel2.cloneNode(true);

// Определение переменных для клонированных элементов списка

  var clonedOptions = clone.getElementsByTagName("option");

// Вызов функции собирающей вызываемый список

  refreshDynamicSelectOptions(sel1, sel2, clonedOptions);

// При изменении выбранного элемента в первом списке: // вызов функции пересобирающей вызываемый список

  sel1.onchange = function() {
  refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
  }
 }
}

// Функция для сборки динамического списка

function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {

// Удаление всех элементов динамического списка

 while (sel2.options.length) {
  sel2.remove(0);
 }
 var pattern1 = /( |^)(select)( |$)/;
 var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");

// Перебор клонированных элементов списка

 for (var i = 0; i < clonedOptions.length; i++) {

// Если название класса клонированного option эквивалентно "select" // либо эквивалентно значению option первого списка

  if (clonedOptions[i].className.match(pattern1) ||
  clonedOptions[i].className.match(pattern2)) {

// его нужно клонировать в динамически создаваемый список

   sel2.appendChild(clonedOptions[i].cloneNode(true));
  }
 }
}

// Вызов скрипта при загрузке страницы

window.onload = function() {
	dynamicSelect("Country", "City");
}
// ]]></script>

Отправлено: 18:14, 06-08-2010 | #6


Deadooshka


Сообщения: 2517
Благодарности: 692

Профиль | Отправить PM | Цитировать


второй window.onload перезаписывает первый, поэтому
Цитата Greendumb:
window.onload = function() { dynamicSelect("Country", "City"); } »
это уберите, а строку
Код: Выделить весь код
dynamicSelect("Country", "City");
засуньте в тело первого обработчика, в самый конец... имхо после placemark.balloonOpen();
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:38, 06-08-2010 | #7


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо! Вы очень помогли! Сначала не получалось, я просто сильно "расковырял" весь код, а потом отладчик файрфокса мне показал на мои "грехи" - в общем все заработало!!! Еще раз спасибо!!!

Последний раз редактировалось Greendumb, 07-08-2010 в 12:09.


Отправлено: 00:47, 07-08-2010 | #8



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Не работает js скрипт при <body onLoad="initialize()">

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Службы - [решено] Работает ли "Защитник Windows" при отключенном "Центре обеспечения безопасности"? ~SloNicK~ Microsoft Windows 7 7 04-01-2010 13:57
Доступ - Не работает кнопка "Обзор" или "Browse" volneb Microsoft Windows 7 0 21-02-2009 16:56
Интерфейс - [решено] При просмотре папок в "мой компьютер" и "проводнике" каждая новая папка открывается в mr.R Microsoft Windows 2000/XP 14 07-08-2008 00:33
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29
Не работает галочка "Уведомлять при ограниченном или отсутствующем подключении" Beduir Microsoft Windows 2000/XP 6 03-09-2006 10:43




 
Переход