Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.04.2014, 18:44
Интересующийся
Отправить личное сообщение для all4me1982 Посмотреть профиль Найти все сообщения от all4me1982
 
Регистрация: 04.06.2013
Сообщений: 19

Не вызывается функция JS в HTML
Приветствую!
В JS я топор. Прощу помощи
Пытаюсь вызвать JS функцию в HTML таким методом:

<script type="text/javascript" language="javascript">
showAddress('Москва, ул.Самокатная, д.1., стр.21')
</script>
но ничего не выходит.
Если же я прописываю так:
<a href="javascript:showAddress('Москва, ул.Самокатная, д.1., стр.21')">Москва, ул.Самокатная, д.1., стр.21</a>
то при нажатии на ссылку все работает.

Как мне сделать чтобы функция запускалась автоматом не нажимая на ссылку?
Ответить с цитированием
  #2 (permalink)  
Старый 04.04.2014, 19:27
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Скорее всего, на момент загрузки элемента <script> и выполнения в нем кода (а код выполняется сразу же при загрузке) функции showAddress просто не существует. Как запускать функцию автоматом - запускать её лишь тогда, когда она будет объявлена. Как это сделать - без знания кода сказать невозможно.
Ответить с цитированием
  #3 (permalink)  
Старый 04.04.2014, 19:36
Интересующийся
Отправить личное сообщение для all4me1982 Посмотреть профиль Найти все сообщения от all4me1982
 
Регистрация: 04.06.2013
Сообщений: 19

почему тогда она так выполняется
<a href="javascript:showAddress('Москва, ул.Самокатная, д.1., стр.21')">Москва, ул.Самокатная, д.1., стр.21</a>

???
Ответить с цитированием
  #4 (permalink)  
Старый 04.04.2014, 19:39
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

В этом случае код выполняется только при нажатии на ссылку, когда страница загрузилась и функция showAddress была инициализирована. Если ты вставляешь код в элемент <script> - этот код выполняется во время загрузки страницы, еще до того, как функция инициализируется.
Ответить с цитированием
  #5 (permalink)  
Старый 04.04.2014, 19:41
Интересующийся
Отправить личное сообщение для all4me1982 Посмотреть профиль Найти все сообщения от all4me1982
 
Регистрация: 04.06.2013
Сообщений: 19

а да точно...
саму функцию я объявляю в <head> документа
<script src="http://api-maps.yandex.ru/1.1/index.xml?key=AAxdPlMBAAAAtF8OewMAdeohAZP2V7UNQIga GBL1CzxrEf0AAAAAAAAAAACSv_9W2SVDOURAo9v_4FDuNoFBbQ ==" type="text/javascript"></script>

<script type="text/javascript">
var map, geoResult;

// Создание обработчика для события window.onLoad
YMaps.jQuery(function () {
// Создание экземпляра карты и его привязка к созданному контейнеру
map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);

// Установка для карты ее центра и масштаба
map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);

// Добавление элементов управления
map.addControl(new YMaps.TypeControl());
});

// Функция для отображения результата геокодирования
// Параметр value - адрес объекта для поиска
function showAddress (value) {
// Удаление предыдущего результата поиска
map.removeOverlay(geoResult);

// Запуск процесса геокодирования
var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});

// Создание обработчика для успешного завершения геокодирования
YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
// Если объект был найден, то добавляем его на карту
// и центрируем карту по области обзора найденного объекта
if (this.length()) {
geoResult = this.get(0);
map.addOverlay(geoResult);
map.setBounds(geoResult.getBounds());
}else {
alert("Ничего не найдено")
}
});

// Процесс геокодирования завершен неудачно
YMaps.Events.observe(geocoder, geocoder.Events.Fault, function (geocoder, error) {
alert("Произошла ошибка: " + error);
})
}
</script>

</script>

подскажите как и что переделать, позарез надо.
Ответить с цитированием
  #6 (permalink)  
Старый 04.04.2014, 20:03
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Так, ну функция-то у тебя создается до ее вызова, а вот данные загружаются уже после. Пропиши вызов showAddress вот здесь:
YMaps.jQuery(function () {
// Создание экземпляра карты и его привязка к созданному контейнеру
map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);

// Установка для карты ее центра и масштаба
map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);

// Добавление элементов управления
map.addControl(new YMaps.TypeControl());

showAddress('Москва, ул.Самокатная, д.1., стр.21');
});
Ответить с цитированием
  #7 (permalink)  
Старый 04.04.2014, 20:08
Интересующийся
Отправить личное сообщение для all4me1982 Посмотреть профиль Найти все сообщения от all4me1982
 
Регистрация: 04.06.2013
Сообщений: 19

Низкий поклон!
Заработало!
Вопрос снят.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выгрузка html в файл средствами JS Moonshell Javascript под браузер 5 16.02.2014 17:44
как из js передать параметр в html wins Общие вопросы Javascript 6 22.12.2013 15:56
Добавление JS кода в HTML страницу (расширение) iLnes Общие вопросы Javascript 2 18.06.2013 06:04
Ищу jquery, js, html, css спеца. AlexBell Работа 41 23.11.2012 08:20
Тестирование на JS и формах HTML djsadd Элементы интерфейса 3 17.05.2011 08:45