Xpoint
   [напомнить пароль]

Проверить, загружен ли скрипт

Метки: [без меток]
2009-02-23 17:45:25 [обр] Француз[досье]

Помогите. Как проверить загрузился ли внешний JS, а если нет, то загрузить другой.

<script type="text/javascript" src="http://google.com/1.js"></script>
Если не загрузился, то:
<script type="text/javascript" src="http://yandex.ru/1.js"></script>

спустя 1 час 59 минут [обр] Давид Мзареулян(107/1003)[досье]
Вариант первый — грузить динамически при помощи какой-либо js-бибилиотеки и ловить успех/ошибку операции. Например, http://docs.jquery.com/Ajax/jQuery.getScript.
Вариант второй — проверять существование какой-либо глобальной переменной, которая устанавливается в подключаемом скрипте.
спустя 11 минут [обр] Француз[досье]

Не могли бы показать пример. :)

Там есть переменная ww со значением copyright.

спустя 25 минут [обр] Давид Мзареулян(107/1003)[досье]
if (ww == 'copyright') {
 // ура, мы загрузились
} else {
 // что-то пошло не так…
}
спустя 15 минут [обр] Француз[досье]

<script type="text/javascript" src="http://google.com/1.js"></script>

<script type="text/javascript">
function checkjs() {
if (ww == 'copyright') {
alert ('Есть');
} else {
alert ('Увы');
}
}
checkjs();
</script>

Если скрипт загружен, alert выполняется. А если не загружается, то ничего не выполняется. :(

спустя 3 минуты [обр] Француз[досье]
Если я правильно понял, скрипт, который выше, должен выкинуть сообщение "Увы", так как на Гугле нет такого файла и соответственно такой переменной. Но ничего не происходит, кроме того, что браузер выдает ошибку скрипта.
спустя 40 минут [обр] Давид Мзареулян(107/1003)[досье]

if (typeof ww != 'undefined' && ww == 'copyright'), так правильнее.

А вообще, см. ошибки, которые выдаёт Вам браузер.

спустя 14 минут [обр] Француз[досье]
Спасибо. Всё получилось.
спустя 55 секунд [обр] balou(23/23)[досье]
<script type="text/javascript" src="http://google.com/1.js"></script>

<script type="text/javascript">
function checkjs() { 
if (window.ww == 'copyright') {
alert ('Есть');
} else {
alert ('Увы');
}
}
checkjs();
</script>
вот так будет "Увы"
спустя 38 минут [обр] Француз[досье]
Так будет "Увы" в любом случае, даже если скрипт загрузился. :)
спустя 1 минуту [обр] Француз[досье]
Сорри, так тоже работает.
спустя 1 минуту [обр] Француз[досье]
А как лучше? Есть ли принципиальная разница?
спустя 7 минут [обр] balou(23/23)[досье]
так короче :)
спустя 3 минуты [обр] balou(23/23)[досье]
и проверка может быть такой if(window.ww), а это еще короче
Правда лучше, если переменную назвать более членораздельно (не ww)
спустя 1 час 39 минут [обр] Давид Мзареулян(107/1003)[досье]
balou[досье] Ругаться может, что object has no property ww… IE так ругаться любит. Всё-таки правильнее проверять на undefined.
спустя 6 минут [обр] Француз[досье]
Спасибо.
Powered by POEM™ Engine Copyright © 2002-2005