Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Два скрипта на одной странице невыполняються (https://javascript.ru/forum/css-html/6128-dva-skripta-na-odnojj-stranice-nevypolnyayutsya.html)

mcaelum 12.11.2009 10:06

Два скрипта на одной странице невыполняються
 
По отдельности всё работает

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1257" />
<title>Knygш pasaulis</title>
</head>
<link href="style.css" rel="stylesheet" type="text/css" />
<body onload="initialize()" onunload="GUnload()">
<div id="container">
<ul>
 <li> | <a href="#">RU</a> | <a href="#">LT</a> | </li> 
</ul>
<div id="header"><img src="images/header.jpg" width="750" height="100" /></div>
<ul>
 <li> | <a href="#">Apie mus</a></li>
 <li> | <a href="#">Parduotuvлs</a></li>
 <li>  | <a href="#">Kaip padaryti uюsakymа</a></li>
 <li>  | <a href="#">Apmokлjimas ir pristatymas</a></li>
 <li>  | <a href="#">Kontaktai</a> | </li>
</ul>

<table width="750" border="1">
  <tr>
    <td><h4><strong>VILNIUS </strong></h4>
      <hr />
      <h4>Seliш g. 39/2, Vilnius LT-08109<br />
        Tel./faks. (5) 270 59 21 <br />
        El. pa&scaron;tas: vilnius1@goldnika.lt<br />
        <strong>Darbo laikas:</strong></h4>
<h4> I-V 10.00-18.00 </h4>
      <h4>VI 10.00-15.00 </h4>
      <h4>VII i&scaron;eiginл</h4></td>
  </tr>
  <tr>
    <td>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;
key=ABQIAAAAmDO0XIdhwFWIsCy13bgDBBRLUw4YDfbJUMKaTCMZWTKMMZur9RT3eYzxnW1zxMaqI-5mAG1GTzRTuA&sensor=false" 
type="text/javascript"></script>
 
<script type="text/javascript">

function initialize() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));
        var center = new GLatLng(54.698655, 25.246489);
        map.setCenter(center, 17);
 	var map_ctrl=new GLargeMapControl();
	var map_type_ctrl=new GMapTypeControl();
	var map_scale_ctrl=new GScaleControl();
	map.addControl(map_ctrl);
	map.addControl(map_type_ctrl);
	map.addControl(map_scale_ctrl);
    var marker = new GMarker(center, {draggable: true});
	map.addOverlay(marker);
 
      }
    } 

</script>  <div id="map_canvas" style="width: 730px; height: 450px"></div>      
      &nbsp;</td>
  </tr>
  <tr>
    <td><h4>Paneveюio g. 4, Vilnius LT-02112<br />
      Tel./faks. (5) 238 35 82<br />
      El. pa&scaron;tas: vilnius1@goldnika.lt<br />
  <strong>Darbo laikas:</strong></h4>
      <h4> I-V 10.00-17.00 </h4>
      <h4>VI 10.00-15.00 </h4>
      <h4>VII i&scaron;eiginл</h4></td>
  </tr>
  <tr>
    <td><script src="http://maps.google.com/maps?file=api&amp;v=2&amp;
key=ABQIAAAAmDO0XIdhwFWIsCy13bgDBBRLUw4YDfbJUMKaTCMZWTKMMZur9RT3eYzxnW1zxMaqI-5mAG1GTzRTuA&sensor=false" 
type="text/javascript"></script> 
      <script type="text/javascript">

function initialize() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas1"));
        var center = new GLatLng(54.666435, 25.282684);
        map.setCenter(center, 17);
 	var map_ctrl=new GLargeMapControl();
	var map_type_ctrl=new GMapTypeControl();
	var map_scale_ctrl=new GScaleControl();
	map.addControl(map_ctrl);
	map.addControl(map_type_ctrl);
	map.addControl(map_scale_ctrl);
    var marker = new GMarker(center, {draggable: true});
	map.addOverlay(marker);
 
      }
    } 

</script>  <div id="map_canvas1" style="width: 730px; height: 450px"></div>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>

<div id="footer"> <h6> © UAB "Goldnika" 1994-2009 Visos teisлs saugomos</h6>
</div>
</div>
</body>
</html>

mcaelum 12.11.2009 10:43

А маленький пример можно?

Octane 12.11.2009 10:59

Пример чего, как оформлять код? Вот тут все написано: http://javascript.ru/formatting


Сорри не в тему, но насмешила верстка:
Цитата:

Сообщение от mcaelum
<ul>
 <li> | <a href="#">RU</a> | <a href="#">LT</a> | </li> 
</ul>

<ul>
  <li> | <a href="#">Apie mus</a> | <a href="#">Parduotuvлs</a> | <a href="#">Kaip padaryti uюsakymа</a> | <a href="#">Apmokлjimas ir pristatymas</a> | <a href="#">Kontaktai</a> |</li>
</ul>

Список для верстки меню для того и используют, что это список ссылок:
<ul>
  <li><a href="#">Apie mus</a></li>
  <li><a href="#">Parduotuvлs</a></li>
  <li><a href="#">Kaip padaryti uюsakymа</a></li>
  <li><a href="#">Apmokлjimas ir pristatymas</a></li>
  <li><a href="#">Kontaktai</a> |</li>
</ul>

А не все ссылки в один элемент списка запихивать :)

И вообще у вас какая-то хренотень с версткой: 3 раза на странице закрывается </head> и начинается <body>, скорее всего и скрипты из-за того не работают.

mcaelum 12.11.2009 11:49

Цитата:

Сообщение от Octane (Сообщение 35191)
Пример чего, как оформлять код? Вот тут все написано: http://javascript.ru/formatting


Сорри не в тему, но насмешила верстка:

Список для верстки меню для того и используют, что это список ссылок:
<ul>
  <li><a href="#">Apie mus</a></li>
  <li><a href="#">Parduotuvлs</a></li>
  <li><a href="#">Kaip padaryti uюsakymа</a></li>
  <li><a href="#">Apmokлjimas ir pristatymas</a></li>
  <li><a href="#">Kontaktai</a> |</li>
</ul>

А не все ссылки в один элемент списка запихивать :)

И вообще у вас какая-то хренотень с версткой: 3 раза на странице закрывается </head> и начинается <body>, скорее всего и скрипты из-за того не работают.

Вёрстку исправил всёравно неработает. Спасибо за терпение

Riim 12.11.2009 12:04

А зачем вообще все эти ul и li? Я так делаю:
<div>
<a>1</a>
<a>2</a>
<a>3</a>
</div>


Вроде вполне семантично, или нет?

Octane 12.11.2009 12:11

Цитата:

Сообщение от Riim
Вроде вполне семантично, или нет?

Ну список ссылок как бы напрашивается быть свёрстанным в виде списка :)
http://pepelsbey.net/2008/04/semantic-coding-1/
http://pepelsbey.net/2008/04/semantic-coding-2/
А вообще семантика понятие растяжимое.

mcaelum 12.11.2009 12:13

Цитата:

Сообщение от Riim (Сообщение 35201)
А зачем вообще все эти ul и li? Я так делаю:
<div>
<a>1</a>
<a>2</a>
<a>3</a>
</div>


Вроде вполне семантично, или нет?

В моём случае наврядли подойдёт
http://goldnika.lt/test/parduotuves.html

mcaelum 12.11.2009 12:43

Проблему решил так
<body onload="initialize1();initialize2()" onunload="GUnload()">

для каждого свой initialize и всё рулит

Riim 13.11.2009 10:36

Я вспомнил, списки я оказывается тоже люблю :) .
Мне вот что не нравится:
<ul>
  <li><a href="#">Apie mus</a></li>
  <li><a href="#">Parduotuvлs</a></li>
  <li><a href="#">Kaip padaryti uюsakymа</a></li>
  <li><a href="#">Apmokлjimas ir pristatymas</a></li>
  <li><a href="#">Kontaktai</a> |</li>
</ul>

здесь href="#", т. е. будет еще событие onclick. Часто вижу такую верстку и часто с ней совсем не согласен. Например, панелька с bb-тегами, каждая кнопка в ней - это тег "a", но в таком случае тег "a" совсем не в тему. "a" - это "alink", он же "active link", с active в данном случае трудно не согласиться, а вот никакого link-а здесь нет. Кнопки просто выполняют какие-то действия: открывают меню со смайлами, меняют текст, но никуда не ссылаются. Поэтому если добавляется onclick, то часто без "a" намного правильней, а onclick уже на "li" крепится.

Цитата:

Сообщение от Octane
Ну список ссылок как бы напрашивается быть свёрстанным в виде списка

Я про то, что должен быть именно список ссылок, а не чего-то еще.

Octane 13.11.2009 13:59

Цитата:

Сообщение от Riim
Поэтому если добавляется onclick, то часто без "a" намного правильней, а onclick уже на "li" крепится.

Правильней, но иногда можно пожертвовать семантикой, чтобы не подключать дополнительные скрипты в IE6, реализующие hover-эффект, и сохранить фокус ввода.

subzey 23.11.2009 13:27

Цитата:

Сообщение от Riim (Сообщение 35244)
"a" - это "alink", он же "active link", с active в данном случае трудно не согласиться, а вот никакого link-а здесь нет. Кнопки просто выполняют какие-то действия: открывают меню со смайлами, меняют текст, но никуда не ссылаются. Поэтому если добавляется onclick, то часто без "a" намного правильней, а onclick уже на "li" крепится.

«a» — это «anchor», текстовый якорь.
А насчет целесообразности ссылок, попробуйте открыть такой элемент, перейдя на него Tab. Или Shift-(←→↓↑) в опере. Не все же обожают пользоваться мышью.

Greendumb 06.08.2010 18:35

Помогите разобраться
 
Добрый день! У меня такая проблема, но в виду моей неопытности (разбираться с этим делом я начал только с сегодняшнего утра))) решить самостоятельно мне ее не удалось.
<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/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>

Работает только один скрипт из двух (первый выводит пользовательскую Яндекс.карту, второй - выпадающее меню), по одному работают хорошо. Буду очень признателен за помошь!
Наглядный пример http://interaktivecard.com/bahchisaray.html . Сейчас не работает сортировка списка.


Часовой пояс GMT +3, время: 14:56.