Javascript.RU

Подключение и выполнение javascript

В этом разделе мы понемногу рассмотрим все основные элементы javascript. Это позволит тут же писать и тестировать простейшие скрипты.

Javascript подключается напрямую в HTML-файл. Самый простой способ - это написать javascript-команды внутрь тега <script> где-нибудь в теле страницы.

Когда браузер читает HTML-страничку, и видит <script> - он первым делом читает и выполняет код, а только потом продолжает читать страницу дальше.

Так, в следующем примере будет показано начало страницы, затем три раза выполнится функция alert, которая выводит окошко с информацией, а только потом появится остальная часть страницы.

<html><body>    <h1>Считаем кроликов</h1>    *!*    <script type="text/javascript">        for(var i=1; i<=3; i++) {            alert("Из шляпы достали "+i+" кролика!")        }    </script>    */!*    <h1>...Посчитали</h1></body></html>

В этом примере использовались следующие элементы.

<script type="text/javascript"> ... </script>
Тег <script> сообщает браузеру о том, что внутри находится исполняемый скрипт. Атрибут type говорит о том, что это javascript. Вообще говоря, атрибут может отсутствовать - разницы нет, но с точки зрения стандарта его следует указать.
Конструкция for
Обычный цикл, по синтаксису аналогичный другим языкам программирования.
Объявление var i
Объявление переменной внутри цикла: i - локальная переменная.
Функция alert
Выводит сообщение на экран и ждет, пока посетитель не нажмет ОК

Обычно javascript стараются отделить от собственно документа.

Для этого его помещают внутрь тега HEAD, а в теле страницы по возможности оставляется чистая верстка.

В следующем примере javascript-код только описывает функцию count_rabbits, а ее вызов осуществляется по нажатию на кнопку input.

<html>

    <head>
        *!*
        <script type="text/javascript">
            function count_rabbits() {
                for(var i=1; i<=3; i++) {
                   // оператор + соединяет строки
                   alert("Из шляпы достали "+i+" кролика!")
                }
            }
         </script>
         */!*
    </head>

    <body>
         *!*<input type="button" onclick="count_rabbits()" value="Считать кролей!"/>*/!*
    </body>

</html>

Для указания запускаемой по клику функции в input был использован атрибут onclick. Это лишь вершина мощного айсберга javascript-событий.

Обычно javascript-код вообще не пишут в HTML, а подключают отдельный файл со скриптом, вот так:

<script src="/my/script.js"></script>

При этом файл /my/script.js содержит javascript-код, который иначе мог бы находиться внутри тега <script>.

Это очень удобно, потому что один и тот же файл со скриптами можно подключать на разных страницах. При правильных настройках сервера браузер закеширует его и не будет скачивать каждый раз заново.

Чтобы подключить несколько скриптов - используйте несколько таких тегов:

<script src="/js/script1.js"></script>
<script src="/js/script2.js"></script>
...
При указании атрибута src содержимое тега игнорируется.

То есть одновременно подключить внешний файл и написать что-то внутри тега нельзя. Придется делать два разных тега <script>: первый с src, второй - с командами, которые будут выполнены после выполнения внешнего файла.

Современное оформление тэга <script>.

На плохое оформление сейчас ругается только валидатор. Поэтому эту заметку можно не читать.

Однако, знать это полезно хотя бы для того, чтобы сразу отличать современный и профессиональный скрипт от написанного эдак лет 5-6 назад.

Атрибут <script type=...>
По стандарту этот атрибут нужен для указания языка скрипта, но по умолчанию принят javascript, поэтому даже атрибута type нет - все работает ок. Но валидатор будет ругаться, т.к стандарт требует этот атрибут.

Иногда используют <script type="text/html"> как оригинальный способ добавить неотображаемые данные на страницу. Браузер не исполняет и не показывает <script> с неизвестным типом. В этом плане он ничем не отличается от обычного <div> с вечным style="display:none".

Атрибут <script language=...>
В старых скриптах нередко можно увидеть атрибут language. Этот атрибут давно мертв и никому не нужен. Не используйте его для javascript.
Комментарии до и после скрипта
В старых руководствах по javascript встречается указание "прятать" javascript-код от старых браузеров, заключая его в HTML-комментарии <!-- ... -->.

Браузер, от которого прятали код (старый Netscape), давно умер. Современные браузеры комментарии просто игнорируют. Не ставьте их.


Автор: Zzet, дата: 30 июля, 2009 - 18:58
#permalink

Здравствуйте!Запускаю скрипт для подсчета кроликов по кнопке. скрипт в отдельном html, браузер Mozilla FireFox - не работает. в чем дело не подскажете? подддержка JavaScript в браузере включена.


Автор: Марат (не зарегистрирован), дата: 30 июля, 2009 - 21:11
#permalink

Если Вы имеете в виду, что вы выносите js-код в отдельный файл, то там нужно поставить расширение .js


Автор: Tikson (не зарегистрирован), дата: 17 августа, 2009 - 20:55
#permalink

Согласен с Zzet
НЕ работает пример с head на локальном компьютере. На сайте если нажать Просмотреть - работает, но если скопировать код и сохранить на локальном компьютере, то ничего не происходит в браузере, появляется только кнопка- жмешь на нее , ничего не происходит


Автор: Илья Кантор, дата: 18 августа, 2009 - 11:15
#permalink

Попробовал. По виду - при копировании и вставке - код вставляется в 1 строчку, это так у вас?


Автор: Грин (не зарегистрирован), дата: 18 декабря, 2011 - 01:21
#permalink

Tikson, ну ёмаё, правильно, ничего не выйдет, потомучто файл с расширением js сохранен на сервере, чтобы код работал у тебя, тебе нужно написать такой файл у себя на компе и прописать к нему путь!!! Ну что тут может быть не понятно???


Автор: Арсенька, одмын-дизайнер (не зарегистрирован), дата: 18 мая, 2012 - 03:27
#permalink

Конечно нифига на локальном не выйдет. ДЖс - это язык програмирования. Для его выполнения нужна среда. такая же как для кода пхп, т.е. тот же денвер. Олухи блин...


Автор: Гость (не зарегистрирован), дата: 21 марта, 2012 - 22:07
#permalink

Правильно... В Head тег titile является необходимым без него ничего не запашет


Автор: Tikson (не зарегистрирован), дата: 18 августа, 2009 - 14:50
#permalink

>По виду - при копировании и вставке - код вставляется в 1 строчку, это так у вас?
Не могу найти этому обьяснение, но сегодня этот пример работает...). Причем действия я выполнил все теже, что и впрошлый раз.
В одну строчку код не вставлялся, все нормально вставлялось в мой текстовый редактор.
В любом случае благодарю за помощь.


Автор: Philcher (не зарегистрирован), дата: 12 января, 2010 - 16:09
#permalink

Тоже самое - с первого раза не сработало, скопированное вставилось в одну строку. Если вставить также как здесь - построчно, то все сработает.


Автор: Voland-Li (не зарегистрирован), дата: 20 мая, 2010 - 09:30
#permalink

ребят, а вам про кеш никто не рассказывал ?


Автор: Гость (не зарегистрирован), дата: 15 марта, 2012 - 18:52
#permalink

иди нахуй.


Автор: Maxim (не зарегистрирован), дата: 19 августа, 2009 - 17:58
#permalink

Все работает, просто когда вы пишите код в файле .js
такие параметры как:

script type="text/javascript"

учитывать не надо. И писать надо без них. Тогда все работать будет.


Автор: SoulFestival (не зарегистрирован), дата: 26 августа, 2009 - 08:03
#permalink

Скрипт не работает когда при копировании заносится в одну строчку.
Там комментарии закрывают alert


Автор: Mihel (не зарегистрирован), дата: 13 декабря, 2009 - 20:27
#permalink

Ну что вы все ерунду пишите. Одна строчка, коментарии.... что мы здесь все, малыши - элементарных вещей не знаем?
Пример не работает. Почему?
Учебник содержит ошибку:
- ТАК НЕ ПИСАТЬ.
- вот так писать. И все заработает)))


Автор: Гость (не зарегистрирован), дата: 13 декабря, 2009 - 20:30
#permalink
<script src="/my/script.js"></script>

- ТАК НЕ ПИСАТЬ

<script src="my/script.js"></script>

- ВОТ ТАК ПИСАТЬ
Первый слеш перед my (или js - неважно) лишний.


Автор: B@rmaley.e><e (не зарегистрирован), дата: 14 декабря, 2009 - 23:55
#permalink

Читайте про адресацию.


Автор: Гость (не зарегистрирован), дата: 6 февраля, 2010 - 15:31
#permalink

подтверждаю в ФФ 3.5 не работает если первый "/" перед js ставишь


Автор: Гость (не зарегистрирован), дата: 27 августа, 2009 - 11:18
#permalink

Если вы про кнопку с кроликами то уберите комментарий в коде и всё будет окей.


Автор: Гость (не зарегистрирован), дата: 29 августа, 2009 - 08:38
#permalink

А у меня все пошло сразу) На стандартных настройкай эксплорера) Поэксперементировал) викинул лишнее добавил свое все работает))) Даже удивился этому))))


Автор: Гость (не зарегистрирован), дата: 6 сентября, 2009 - 18:34
#permalink
Спасибо

Автор: Антон Погребной (не зарегистрирован), дата: 9 сентября, 2009 - 14:17
#permalink

Спасибо за отличный учебник!
Скажите можно ли в отдельном файле js писать несколько скриптов?
Если да, то как их разделить в этом файле и как вставлять на страницу
script src="?????.js" ,
или для каждого скрипта нужно создавать отдельный файл?
С уважением Антон.


Автор: Илья Кантор, дата: 9 сентября, 2009 - 22:18
#permalink

Чтобы подключить несколько скриптов - используйте несколько тегов:

<script src="/js/script1.js"></script>
<script src="/js/script2.js"></script>
...

Автор: А (не зарегистрирован), дата: 11 сентября, 2009 - 12:10
#permalink

А как в самом файле js их раздеть?
<script1>Скрипт</script1>
Можно так или нужно иначе?
Извените за мои наивные вопросы!
С уважением Антон.


Автор: Илья Кантор, дата: 11 сентября, 2009 - 12:55
#permalink

Вопрос не понял.


Автор: Гость (не зарегистрирован), дата: 11 сентября, 2009 - 13:03
#permalink

src="/js/script2.js" вставляю в HTML файл.
А в отдельном файле со скриптами JS как разделить (задать имя) каждому скрипту, если их несколько? script1, script2 и т д


Автор: Гость (не зарегистрирован), дата: 24 сентября, 2009 - 22:42
#permalink

Я так понимаю, вы имеете ввиду несколько функций в одном файле?
Тогда нет необходимости их как-то разделять. В одном файле может находиться множество различных функций, каждая из которых выполняет свою задачу. Просто подключаете файл js и в html вызываете нужную функцию, на пример так:

<input type="button" onclick="count_rabbits()" value="Считать кролей!"/>

из второго примера вызывает функцию count_rabbits()


Автор: Гость (не зарегистрирован), дата: 28 сентября, 2009 - 14:31
#permalink

Во внешнем файле js три текста
document.write("Текст 1");
document.write("Текст 2");
document.write("Текст 3");
Как каждый отдельный текст вставить в HTML файл?
script src="?????????.js" Как им задать имя? Я это спрашиваю.


Автор: dm-tlt (не зарегистрирован), дата: 28 сентября, 2009 - 18:39
#permalink

Помещай каждый текст в отдельную функцию и выводи эту фунцию в любом месте страницы.


Автор: Гость (не зарегистрирован), дата: 27 февраля, 2012 - 22:40
#permalink

А как быть если в одном *.js
две функции и одна вызывает другую?
Пример ниже:
function Login_Sessin(form)
{
if (form.User_Login.value=="1")
{
if (form.User_Password.value=="2")
{
alert("Здравствуй.")
}
else
{
alert("неверный пароль.")
}
}
else
{
alert("Неверный логин.")
}
TEST(form)
}
function TEST
{
alert("Тестовая строка")
}

тестовая строка не выводится. без второй функции работает.


Автор: ГостьZ (не зарегистрирован), дата: 9 сентября, 2009 - 21:33
#permalink

Скажите пожалуйста, как вывести на страницу, где находится кнопка, информацию: i=1;i=2;i=3, из приведенного кода

function count_rabbits() {
for(var i=1; i=1;i<=3; i++) {
// оператор + соединяет строки
alert("Из шляпы достали "+i+" кролика!")
}
}

Заранее Вам благодарна.


Автор: Гость (не зарегистрирован), дата: 2 октября, 2009 - 15:56
#permalink

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

<html>
<head>
<title>Пример 12345 </title>
<a href="http://localhost/true/">Назад nhjjkk </a>
<script type="text/javascript">
function getRandomInt(x, y)
{
  return Math.floor(Math.random() * (x - y + 1)) + x;
}
</script>
</head>
<body>

<p>

 <input type="button" onclick="getRandomInt(0,15)" value="Считать кролей!"/>
</form>
</body>
</html>

Автор: Илья Кантор, дата: 5 октября, 2009 - 00:35
#permalink

Ничего не выводится, т.к. отсутствует оператор вывода, например, alert.


Автор: Гость (не зарегистрирован), дата: 6 октября, 2009 - 12:30
#permalink

А куда его сувать!


Автор: kurguru (не зарегистрирован), дата: 8 октября, 2009 - 16:28
#permalink
function getRandomInt(x, y)
{
  alert(Math.floor(Math.random() * (y - x + 1)) + x);
}

Вместо возвращения значения (return) - в вашем случае можно сразу вызвать alert.
Я так понимаю, x и y - соответственно левая и правая границы диапазона случайных чисел? В коде уже исправлено.


Автор: danie (не зарегистрирован), дата: 13 октября, 2009 - 18:13
#permalink

При вставке всего текста скрипта в

function go()
{
}

вызов кнопкой работает.

При в вставке файла с этой функцией в

вызов кнопкой не пашет. Почему?


Автор: Гость (не зарегистрирован), дата: 16 октября, 2009 - 10:05
#permalink

"браузер читает HTML-страничку" лучше заменить на: "браузер воспроизводит HTML-теги"


Автор: Гость (не зарегистрирован), дата: 16 октября, 2009 - 16:12
#permalink

Как задать свойства шрифта (цвет, размер и т. д.) при помощи javascript только для этого текста?
document.write("ТЕКСТ");


Автор: Гость (не зарегистрирован), дата: 14 января, 2010 - 07:31
#permalink

Используйте HTML:

document.write('<font color="red">TEKST</font>');

Автор: Гость (не зарегистрирован), дата: 10 февраля, 2011 - 19:52
#permalink

document.write("ТЕКСТ");


Автор: Sirozha (не зарегистрирован), дата: 9 ноября, 2009 - 18:07
#permalink

Доброго времени суток
Не могли бы вы уточнить, каким образом писать адрес внешнего скрипта, (объясняю ситуацию: существует html страница и локально в это же папке лежит скрипт)


Автор: Гость (не зарегистрирован), дата: 10 ноября, 2009 - 15:19
#permalink
<script src="NameScript.js" ...></script>

- это если скрипт лежит в одной папке с html-файлом
Извиняюсь за повторы - не заметил, что не все тэги разрешены....


Автор: Гость (не зарегистрирован), дата: 10 ноября, 2009 - 19:16
#permalink

при открытии карт или удалении писем появляется надпись,что нет сервиса javascript и надо подключить в надстройках браузера. ПОМОГИТЕ ПОЖАЛУЙСТА. я неуверенный пользователь ПК и видно,что-то нахимичила. ПОМОГИТЕ


Автор: Norma (не зарегистрирован), дата: 12 ноября, 2009 - 14:59
#permalink

в браузере инструменты - настройки - включить javascript


Автор: Norma (не зарегистрирован), дата: 12 ноября, 2009 - 15:11
#permalink

вопрос: а если внешних скриптов несколько, то имена всех методов в них должны быть разными? чтобы не было путаницы, какую функцию вызывать по событию, например onclick? или можно как-то явно прописать через имя скрипта?


Автор: Илья Кантор, дата: 13 декабря, 2009 - 15:05
#permalink

Сколько бы внешних скриптов не было - объявленные в них функции и переменные находятся в одном глобальном пространстве имен window.


Автор: Гость (не зарегистрирован), дата: 16 ноября, 2009 - 17:52
#permalink

Вопрос: внешний файл .js кроме текста самого скрипта должен еще что-то включать?
Поясню свой вопрос: хочу вынести скрипт в отдельный файл, вырезала текст скрипта из страницы, добавила src, а сам текст вставила в отдельный файл. Что еще в этом файле надо дописать?


Автор: Илья Кантор, дата: 13 декабря, 2009 - 15:03
#permalink

Нет, js не должен и не может включать ничего, кроме текста скрипта.


Автор: Гость (не зарегистрирован), дата: 10 февраля, 2011 - 20:09
#permalink
// <![CDATA
...
// ]]>

это для чего вначале и в конце в файле скрипта вставляют?


Автор: Гость (не зарегистрирован), дата: 11 февраля, 2011 - 13:24
#permalink

не в файл, а во встроенный в страницу скрипт. чтобы не надо было кодировать спецсимволы (например, писать &amp; вместо &)
а в отдельном файле такая конструкция не нужна, хотя и безвредна.


Автор: Гость (не зарегистрирован), дата: 2 июля, 2011 - 22:05
#permalink

Только в XHTML. В HTML тег CDATA не рекомендуется


Автор: Гость (не зарегистрирован), дата: 12 декабря, 2009 - 22:27
#permalink

Скажите, пожалуйста, а можно из одного файла script.js обращаться к другому файлу lib.js и использовать функции, описаные в нём?

И ещё:
Из родительского окна открывается дочернее(open().
Из дочернего окна происходит обращение к массиву users[], находящимуся в родительском: opener.document.users[](если это имеет значение - каждая ячейка массива содержит объект - получается как бы многомерный массив).
Если происходит просто редактирование значений то всё нормально, а если было добавление новой ячейки(opener.document.users.push(), то при закрытии дочернего окна, и повторном его открытии в ИЕ(6) выскакивает ошибка:
"Вызываемая сторона(сервер[а не приложение-сервер]) недоступна и исчезла; ни одно бодключение более не действует. Сам вызов не был выполнен".
Мозилла и Опера не капризничают...


Автор: Илья Кантор, дата: 13 декабря, 2009 - 15:04
#permalink

Файл lib.js должен быть загружен, тогда его функции станут доступными. Загрузить его можно, добавив в HTML соответствующую строчку <script src="...></script>

Можно также добавить ее через DOM.


Автор: Жорж Борман (не зарегистрирован), дата: 20 декабря, 2009 - 23:26
#permalink

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

function checkjs() {
if (window.hs === undefined) {
alert (window.hs+'Нет такая');
} else {
alert (window.hs+'Есть такая');

}
}
checkjs();


Автор: Жорж Борман (не зарегистрирован), дата: 20 декабря, 2009 - 23:32
#permalink

Кстати, спасибо за отличный мануал.


Автор: Гость (не зарегистрирован), дата: 2 января, 2010 - 11:45
#permalink

здравствуйте. ничего не знаю о js. объясните пожалуйста, что такое локальная переменная


Автор: Questioner, дата: 22 августа, 2011 - 12:13
#permalink

Переменная, которая существующая только в одной функции


Автор: Gregory May (не зарегистрирован), дата: 5 января, 2010 - 18:21
#permalink

Это отличный учебник для начинающих изучать JavaScript.
Благодарю автора за работу и надеюсь, что в будущем сайт будет только развиваться.

ВОПРОС:
Объясните "i++" в конструкции for и
"+i+" в функции alert

С уважением, Григорий Май
5/I/2010 г.


Автор: B@rmaley.e><e (не зарегистрирован), дата: 5 января, 2010 - 20:38
#permalink
i++

в конструкции for (и не только там) означает увеличение значения переменной i на 1 и полностью эквивалентно

i = i + 1// или i += 1

.

В alert'е +i+ сам по себе был бы бессмысленным (и даже ошибочным, в отличии от i++), т.к. эти операторы принимают 2 аргумента. А вот

'string' + i + 'more string'

уже имеет смысл. Здесь происходит конкатенация (склеивание) 3 строк (при этом все нестроковые переменные принудительно приводятся к строкам). Т.е. сначала будет выполнено

'string' + i

, а потом к результату присоединено

'more string'

. Это выражение аналогично

('string' + i) + 'more string'

Более подробно советую почитать в разделе операторов JavaScript.


Автор: Гость (не зарегистрирован), дата: 13 декабря, 2011 - 21:03
#permalink

'i++' не эквивалентно 'i = i + 1' или 'i += 1', им '++i' эквивалентно


Автор: Mol4ok (не зарегистрирован), дата: 6 января, 2010 - 12:52
#permalink

Да и мне тоже.


Автор: igrd (не зарегистрирован), дата: 8 января, 2010 - 03:10
#permalink

i++ увеличивает переменную i на единицу

+i+ "склеивает" 3 строки:
1) "Из шляпы достали "
2) i (значение переменной, потому без кавычек)
3) " кролика!"


Автор: Gatihno (не зарегистрирован), дата: 30 марта, 2010 - 17:23
#permalink

+i+ "склеивает" 3 строки
Можно по подробней, пожалуйста?
+i как я понял переводит i из числа в строку, а вот зачем второй +?


Автор: Гость (не зарегистрирован), дата: 31 марта, 2010 - 10:30
#permalink

Что бы прибавить третью строку " кролика!"


Автор: Гость (не зарегистрирован), дата: 2 декабря, 2010 - 10:12
#permalink

аааа валяюсь I = 5 это целая пременная
когда пишут Строка+целая переменная т.е "Строка"+I результатом будет "Строка 5"
Так же как "Строка "+"5" т.е. конкатенация двух строк,


Автор: R_G (не зарегистрирован), дата: 9 января, 2010 - 00:50
#permalink

Уважаемый, Илья!
Простите если задам глупый вопрос, но все же!
На сайте есть несколько счетчиков количества посетителей в каждом из которых используются подключаемые файлы javascript. Возможно ли объединение данных файлов в один файл javascript (с целью уменьшения количества обращений к файлам и уменьшения времени загрузки). Если возможно, то как? Если не возможно, пожалуйста объясните, почему?
Спасибо!


Автор: Mol4ok (не зарегистрирован), дата: 10 января, 2010 - 07:43
#permalink

Спасибо! Теперь понятно что означает +i+


Автор: Regent, дата: 11 января, 2010 - 14:54
#permalink

При указании атрибута src содержимое тега игнорируется.
- не всегда! При кое - каком обстоятельсве содержимое может исполнятся!


Автор: Gary_Ch (не зарегистрирован), дата: 13 января, 2010 - 08:23
#permalink

Наткнулся в сети на еще один способ выполнения js при загрузке документа -- механизм подстановок (entity). Вроде

<input value="&{window.location.href};">

Я правильно понял, что этот механизм безнадежно устарел и современными браузерами больше не поддерживается?


Автор: Илья Кантор, дата: 13 января, 2010 - 11:24
#permalink

Этот механизм родился в Netscape давно еще. Он и его аналог в IE (expressions) действительно устарел и не рекомендуется к использованию.


Автор: Гость (не зарегистрирован), дата: 15 января, 2010 - 16:30
#permalink

У меня вопрос. В начале кода нужно написать эту строку.У меня никак не запускается в браузере- выдает синтаксическую ошибку. Ведь первая строка- Это адрес? Относительно чего его нужно указывать?


Автор: Гость (не зарегистрирован), дата: 15 января, 2010 - 16:31
#permalink

вот эта строка-

<script src="script.js"></script>

Автор: hf (не зарегистрирован), дата: 16 января, 2010 - 05:02
#permalink

очень неудобно, что при выделение текста программы, выделяются номера строк.
возможно ли вынести эти цифры как например тут: http://freshcoder.ru/archives/56
?(не сочтите за рекламу)


Автор: Илья Кантор, дата: 16 января, 2010 - 14:36
#permalink

Там справа в менюшке появляющейся есть кнопка - нажмите на нее и номера строк исчезнут.


Автор: @Hunter@, дата: 2 февраля, 2010 - 19:35
#permalink

не стоит пользоваться копипастом если вы начинающий, пишите все вручную, это поможет быстрее усвоить синтаксис)

к тому же если автор кода допустил ошибку или опечатку, то при копипасте вы ее явно не саразу заметите или не заметите, и будете долго ломать голову почему скрипт не работает))

Автору огромный СПС))


Автор: Tadot (не зарегистрирован), дата: 22 января, 2010 - 00:31
#permalink

Все скрипты пашут!


Автор: ГостьЯ (не зарегистрирован), дата: 5 февраля, 2010 - 21:36
#permalink

Удивительно, что в некоторых комментарии совсем элементарные вопросы))) неплохой учебник, молодцы=)


Автор: Гость (не зарегистрирован), дата: 9 февраля, 2010 - 00:36
#permalink

доброго времени суток.
подскажите, пожалуйста, почему при объявлении функции в пределах body её вызов из head оканчивается неудачей? спасибо.


Автор: Гость (не зарегистрирован), дата: 21 февраля, 2010 - 22:32
#permalink

Потому что HEAD обрабатывается раньше, чем BODY и про твою функцию в этот момент браузер еще ничего не знает.


Автор: ALEX_CIT (не зарегистрирован), дата: 12 февраля, 2010 - 06:36
#permalink

Какая последовательность загрузки-исполнения HTML, JS, CSS в браузерах?


Автор: sevdaqasan (не зарегистрирован), дата: 14 февраля, 2010 - 08:05
#permalink

А как сделать так что бы – если человек зашёл на сайт и потом взял и хочет подключится javascript
Пожалуйста подскажите


Автор: Questioner, дата: 1 января, 2012 - 15:30
#permalink

Сформулируй понятней


Автор: Maxum, дата: 23 февраля, 2010 - 03:43
#permalink

Спасибо огромное за одну строчку "При указании атрибута src содержимое тега игнорируется"! Так и бы продолжались мучения и вопросы "почему же не работает внешний скрипт???"
Спасибо ещё раз!


Автор: Гость (не зарегистрирован), дата: 23 февраля, 2010 - 15:52
#permalink

> Объясните "i++" в конструкции for и "+i+" в функции alert
>
> С уважением, Григорий Май>

ne razreshajte takie kommenty..


Автор: vava (не зарегистрирован), дата: 24 февраля, 2010 - 01:40
#permalink

>ne razreshajte takie kommenty..

полностью поддерживаю!

зы ресурс отменный, все в одном месте, красата! спасиба!!!


Автор: Гость (не зарегистрирован), дата: 3 апреля, 2010 - 20:21
#permalink

Здраствуйте. Я скачал один скрипт для сайта. Закинул его в папку Firefox. Далее судя по рекомендации в контекстном меню надо зайти во вкладку "изменить параметры узла", "сценарии", обзор ну и вставить скрипт. Единственная проблема - в контекстном меню у меня нет параметров узла! Перешерстил все настройки, но так и не нашел. Подскажите пожалуйста, где в Firefox параметры узла, либо как этот скрипт вставить по другому. Спасибо.


Автор: Zhecky (не зарегистрирован), дата: 9 января, 2011 - 00:19
#permalink

Такая штука в Опере. В мозилле нету. А зря.


Автор: Гость (не зарегистрирован), дата: 6 мая, 2011 - 11:55
#permalink

В мозилле для подключения пользовательских скриптов есть расширение Greasemonkey.


Автор: Нenry, дата: 19 апреля, 2010 - 18:12
#permalink

Обьясните кто нибудь как мне при редактировани страници поместить или всунуть... большой скрипт в одну строку-окно!??? Для економии места и красоты??? Пример покажите что вырезать и вставить туда скрипт или чем пользоваться в редакторе???


Автор: Гость (не зарегистрирован), дата: 1 мая, 2010 - 04:20
#permalink

так никто и не написал как правильно оформитььб скрипт во внешнем файле.


Автор: ЛехаНаМотохе (не зарегистрирован), дата: 6 мая, 2010 - 08:50
#permalink

все написали, читай камменты


Автор: Pastet (не зарегистрирован), дата: 21 июня, 2010 - 01:50
#permalink

Если еще для вас вопрос актуален, то у меня получилось вот так
В html страницу вроде такого

А в самом файле скрипта пишем без каких либо тегов и комментариев
Пример:function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i


Автор: Pastet (не зарегистрирован), дата: 21 июня, 2010 - 01:56
#permalink

спишу дополнить в html странице вот так

[head]

<strong>[script type="text/javascript" src="script/имя файла.js"][/script]</strong>

[/head]
[body][/body]

Автор: Pastet (не зарегистрирован), дата: 21 июня, 2010 - 01:58
#permalink

только без [strong]
[/strong]


Автор: ИльяДум (не зарегистрирован), дата: 24 июня, 2010 - 14:05
#permalink

Во внешнем скрипте нужно писать чистый javascript, уже не используя тэги , т.е. только то, что идёт между ними (когда скрипт вставлен прямо в тексте HTML-страницы).


Автор: Гость (не зарегистрирован), дата: 17 мая, 2010 - 10:28
#permalink

я так и не понял как писать на javascript(((омогите обьясните основы


Автор: Гость (не зарегистрирован), дата: 19 мая, 2010 - 23:20
#permalink

Уважаемый автор.
Не могу найти примеров и описания работы if.
Мне нужно чтоб в интервале дат, например с 1.05. по 3.06 выводился текст а в остальное время нет. Как это лучше сделать.


Автор: bruha (не зарегистрирован), дата: 25 мая, 2010 - 19:17
#permalink

ошибка:
поэтому даже ЕСЛИ атрибута type нет - все работает ок.


Автор: zenija2007, дата: 27 мая, 2010 - 20:10
#permalink

Я новичок и, судя по всему, не знаю элементарных вещей.
Для всех моих скриптов браузер требует разрешение на исполнение. Как автор этой странички подключил скрипты, что их работа полностью незаметна для пользователя? Не могу найти материал - ни в статьях, ни в поиске, ни в учебниках. Как будто такой проблемы вообще не существует. Буду благодарен, если подскажете.


Автор: simvoliuss (не зарегистрирован), дата: 10 июля, 2010 - 17:54
#permalink

слушай сюда новичок 8-) я тоже уже конечно не новичок но все же я такой же как и ты... если я тебя правильно понял ты говоришь что в браузере пользователю каждый раз придется нажимать "разрешить" чтоб разрешались использование скриптов да? если так то это можно исправить например:
1 то что ты говоришь происходит не со всеми браузерами а только с иннетЭксплорер или еще каким то браузерами (я не све знаю) но с опера такого нет. а пользователям если они через иннетЭксплорер заходят то надо будет каждый раз подтверждать о разрешении. но если они догадаются в настройках своего браузера поставить галочку "всегда разрешать использование сценариев для данного сайта" то в дальнейшем он может спокойно восхититься твоими сценариями(скриптами в действии)....:-)
надеюсь что я тебя правильно понял если нет то напиши мне в аську 558-444-560


Автор: kutok (не зарегистрирован), дата: 27 мая, 2010 - 23:53
#permalink
<link type="text/javascript" href="file.js">

а вот такое разве не используется?


Автор: Гость (не зарегистрирован), дата: 25 июня, 2010 - 11:53
#permalink

Вопрос такой.
Можно ли подключить js файл со стороннего сервера?
Например где то допустим на ya.ru крутится скрипт test.php внутри которого подключается

Возможно ли такое? На первый взгляд в целях безопасности, такое должно быть не допустимо, но с другой стороны, ведь я могу свободно скачать любой js скрипт с ресурса javasript.ru...


Автор: Гость (не зарегистрирован), дата: 10 февраля, 2011 - 20:49
#permalink

точно так же как и с картинками - ты можешь в своём блоге указывать URL картинок из ВКонтакта или других сайтов, не закачивая себе на сервер (некоторые сайты блокируют такое "воровство" и вместо картинки ты увидишь картинку "фото недоступно" с логотипом того сайта или что-то подобное).
java-скрипты можно юзать с других сайтов (есть специальные хранилища например cufon-шрифтов, откуда скрипт загрузится гораздо быстрее, чем с посредственного хостинга). Если ты используешь скрипт нелегально - админы его могут изменить или удалить при реконструкции своего сайта и у тебя всё полетит.
А использовать чужие php, в которых идут обращения к БД тебе вряд ли удастся.


Автор: taurus (не зарегистрирован), дата: 7 июля, 2010 - 12:29
#permalink

не хватает описания атрибута charset в теге script. я использую линукс, а в нем по умолчанию при создании документа идет кодировка utf8, но когда загружается скрипт видимо что то другое, поэтому надо явно указывать.


Автор: Гость (не зарегистрирован), дата: 10 февраля, 2011 - 20:55
#permalink

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

Даже так - с utf8 питоновские скрипты нормально отображают кирилицу в виндовой консоли (если декодировать). Если кодировка py-файла ANSI и там есть кирилические строки - то такой скрипт даже не запустится.


Автор: Flytok (не зарегистрирован), дата: 12 июля, 2010 - 01:27
#permalink

Автору огромное спасибо - со второй попытки все получилось!

function count_rabbits() {
for(var i=1; i<=3; i++) {
// оператор + соединяет строки
alert("Из шляпы достАААли "+i+" кролика!")
}
}

Именно так должен выглядеть отдельный файл со скриптом! (а разместить его удобно создав через ftp отдельную папку,)


Автор: Jamesdgreeze, дата: 28 июля, 2010 - 21:38
#permalink

Подскажите плиз. можно ли сделать в яваскрипт, как в CSS несколько файлов стилей в один включить? В CSS это так: @import url("style.css");
вот тоже самое тока несколько файлов яваскриптов в один подключить?


Автор: Walter Meier, дата: 24 августа, 2010 - 00:21
#permalink

Что означает text/ в script type="text/javascript"?


Автор: PaulG (не зарегистрирован), дата: 24 августа, 2010 - 14:34
#permalink

атрибут type указывает MIME-тип содержимого контейнера. MIME-типы говорят браузерам как обращаться с конкретными расширениями.

А text говорит о том, что это... текст))

бывают еще и application, video, audio...


Автор: лахматый (не зарегистрирован), дата: 18 октября, 2010 - 18:53
#permalink

подскажите пожалуйста начинающему. код javascript выполняется между тегами

//код скрипта

однако во втором примере вызов функции в теле HTML документа происходит ниже закрытвающего тега javascript. Сделать пример получилось и все работает, спасибо, но хотелось бы узнать, почему это так. спасибо заранее


Автор: Гость (не зарегистрирован), дата: 27 октября, 2010 - 20:49
#permalink

Внутри ... функция только определена, а ниже она используется как уже известная.


Автор: lqc0902, дата: 9 ноября, 2010 - 19:50
#permalink

как и где подключится Java Script?


Автор: Гость (не зарегистрирован), дата: 16 ноября, 2010 - 16:10
#permalink

У меня проблема, помогите, что делать незнаю
скачал и установил два срипта, вот так:

Главная

Но работает только один (нижний), что делать незнаю, менял местами работает только нижний, извращался как только можно и нелзя неполучается. ПОМОГИТЕ!!!!!!!!


Автор: Гость (не зарегистрирован), дата: 25 ноября, 2010 - 08:01
#permalink

Два файла в одной папке - Lesson1.html и script.js.

Содержимое файла Lesson1.html:
-------------------------------------------

[head]
[script type="text/javascript" src="/forum/script.js"][/script]
[/head]	 
[body]
[input type="button" onclick="count_rabbits()" value="Считать кролей!"/]
[/body]

// конечно вместо [] уменя <>, просто не знаю как здесь заставить отображаться.

Содержимое файла script.js:
---------------------------------------------
function count_rabbits() {
for(var i=1; i<=3; i++) {
// оператор + соединяет строки
alert("Из шляпы достАААли "+i+" кролика!")
}
}
---------------------------------------------
При открытии браузером файла Lesson1.html кнопка корректно отображается, но но при клике по ней ничего не происходит...
ВОПРОС - почему не выполняется скрипт, где ошибка?


Автор: B@rmaley.e><e, дата: 25 ноября, 2010 - 09:35
#permalink

Смотрите, что говорит консоль ошибок.


Автор: Гость (не зарегистрирован), дата: 25 ноября, 2010 - 12:09
#permalink

Ошибка: count_rabbits is not defined
Источник: file:///C:/Users/123/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(2)/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0/Lesson1.html
Строка: 1
Вот здесь я уже ничего не понимаю, могу предположить что имя функции не верно записано, так нет же, все правильно... Что еще???


Автор: Lukreziy (не зарегистрирован), дата: 11 февраля, 2011 - 14:42
#permalink

Поскольку оба файла в одной папке, то должно быть так: src="script.js"


Автор: Lukreziy (не зарегистрирован), дата: 11 февраля, 2011 - 14:46
#permalink

Сорри, форум вставляет лишнюю папку в путь (/forum/). Поэтому напишу кириллицей: должно быть так: срц="скрипт.js" (без папки /forum/).


Автор: [ANTI]CheateR, дата: 25 ноября, 2010 - 12:21
#permalink

проверьте, подключается ли у вас файл script.js...


Автор: [ANTI]CheateR, дата: 25 ноября, 2010 - 12:22
#permalink

функция ваше не определена... проверьте, подключается ли у вас файл script.js...


Автор: Гость (не зарегистрирован), дата: 25 ноября, 2010 - 12:24
#permalink

Вы уж простите, но как это сделать?


Автор: [ANTI]CheateR, дата: 25 ноября, 2010 - 12:28
#permalink

если браузер хром или файрфокс, то щелчок правой кнопкой - просмотр исходного кода...

там пути отображаются как ссылки, щелкаете по ссылке с вашим js, если открывается, то ищем причины дальше, нет - так прописываем верный путь до js


Автор: Гость (не зарегистрирован), дата: 25 ноября, 2010 - 12:38
#permalink

Сделал все выше сказанное. Адрес тот, что я указал в коде файла "Lesson1" - /forum/script.js. Кликая по нему при просмотре исходного кода ничего не открывается. Следовательно неверный путь. Но файлы в одной папке и адрес прописан точно как здесь объяснили.


Автор: Гость (не зарегистрирован), дата: 25 ноября, 2010 - 12:53
#permalink

Спасибо, проблема решена.
Стоило лишь верно прописать путь. В моем случае это было:
src="/script.js". Так писать не верно, нужно без /. Вот так - src="script.js".

Я так и не понял откуда у Вас взялся вот этот вид src="/forum/script.js", что за /forum? Может это конечно и правильная запись с точки зрения чего-то там, но новичка это только заставляет поломать мозг пару часов.


Автор: Гость (не зарегистрирован), дата: 25 ноября, 2010 - 12:58
#permalink

Ух ты. Парни что-то здесь ни так в коде отображения постов. В сообщении выше, в третьей строке последнее предложение, вот этого /forum быть не должно. Подставляется автоматом, это и заставило меня пол ночи не спать


Автор: turanchoks (не зарегистрирован), дата: 27 ноября, 2010 - 15:55
#permalink

в комментарии к первому примеру написано:

"Объявление var i
Объявление переменной внутри цикла: i - локальная переменная."

а в справочнике где цикл for про ту же переменную:

"initial-expression
Выражение (включая присваивание) или объявление переменной. Как правило, используется для инициализации переменной-счетчика. Это условие может объявлять новую переменную при помощи var. Такая переменная не является локальной переменной цикла, она видна во всей области видимости."

так локальная она или глобальная в JS? спасибо.


Автор: turanchoks (не зарегистрирован), дата: 27 ноября, 2010 - 16:04
#permalink

...или здесь надо говорить не "глобальный", а "видимый за пределами блока". Хотя и это не вариант, если в JS видимость задается функцией, а не блоком...


Автор: B@rmaley.e><e, дата: 28 ноября, 2010 - 00:18
#permalink

Да, как Вы верно заметили, область видимости в JS задается только функцией. Это значит, что переменная, объявленная в for(var ...) будет локальной для текущей области видимости. Т.е. будет доступна всюду внутри функции или, если мы вне функции (т.е. в глобальной области), то переменная соответственно станет глобальной.
В отличие от, например, Си, где область видимости задается блоком и переменная, объявленная в for(...) будет видна только внутри тела цикла.


Автор: Вопрошатель (не зарегистрирован), дата: 30 ноября, 2010 - 14:41
#permalink

Могут ли функции объявденные во внешнем файле работать с глобальными переменными?
То есть у меня в HTML-страницу встроены скрипты.При переносе их во внешний файл и подключении функции не работают.Попросту не видят глобальных переменных,объявленных во встроенных скриптах на html-страницах.
Есть ли выход?Может тогда весь javascript засунуть(вместе с объявление глобальных переменных)?Это будет очень неудобно...


Автор: Гость (не зарегистрирован), дата: 4 декабря, 2010 - 19:32
#permalink

От души посмеялся над выражением "Браузер, от которого прятали код (старый Netscape), давно умер." )


Автор: uzumaxy (не зарегистрирован), дата: 26 декабря, 2010 - 13:10
#permalink

Netscape слабо поддерживал javascript, css и даже css. Разработчики больше внимания уделяли различным дополнениям к браузеру и его функционалу, чем совместимости.
Из-за этого в 1998 году они перестали прятать код(этим самым сделав проект бесплатным) в надежде, что им помогут улучшить совместимость. Но этого не произошло.
Позже AOL(компания разработчиков) забросила проект "Netscape" и занялась разработкой браузера "Firefox".

Если бы AOL не прятали код сразу, то скорее всего собрали бы большую группу энтузиастов и проблема совместимости решилась.

Как видим ты от души посмеялся только над своим незнанием.


Автор: uzumaxy (не зарегистрирован), дата: 26 декабря, 2010 - 13:12
#permalink

Netscape слабо поддерживал javascript, css и даже html. *


Автор: uzumaxy (не зарегистрирован), дата: 26 декабря, 2010 - 12:54
#permalink

Спасибо за отличный учебник!


Автор: AdeL1ne (не зарегистрирован), дата: 27 декабря, 2010 - 09:25
#permalink

Подскажите как сделать так, что бы при нажатии на ссылку запускался следующий скрипт:

var newWin = window.open('test.php','JSSite', 'width=600,height=500,resizable=yes,scrollbars=no,status=yes,toolbar=no')
newWin.focus()

Никак не пойму, куда это присандалить. Может и через ссылку это нельзя реализовать, тогда как??


Автор: Гость (не зарегистрирован), дата: 13 января, 2011 - 12:27
#permalink

код с window.open... и т.д. засунуть в функцию, скажем, openNewWin()
В ссыдке прописать: Нажми сюда Но такой способ не рекомендуется. Или вот так Нажми сюда


Автор: Гость (не зарегистрирован), дата: 19 января, 2011 - 13:45
#permalink

Прошу помочь. Уже третий день не могу решить проблему. Мне нужно вставить в javascript еще один javascript. Подскажите, каким образом это возможно сделать?


Автор: Kapillar, дата: 4 февраля, 2011 - 18:14
#permalink

Подсчет кролей выдает такую ошибку
missing ; before statement
[Прерывать на этой ошибке] 05 function count_rabbits() {
что тут не так не пойму???
+ ко всему свежие комментарии аж в самом низу, кто их прочитает, тем более ответит на них???
спс


Автор: Lukreziy (не зарегистрирован), дата: 11 февраля, 2011 - 17:13
#permalink

Цифры 05, 04, 03 и т.д. убери.


Автор: JanyJoinnyDiz (не зарегистрирован), дата: 5 февраля, 2011 - 23:04
#permalink

перечитал весь блог, довольно неплохо


Автор: Kapillar, дата: 6 февраля, 2011 - 20:43
#permalink

с предыдущей проблемкой сам разобрался)) но хочу оставить пожелание, ввиду того что никто не отвечал на вопрос) 2 дня, новые посты отображать вверху, а не внизу, и(или) набрать пару модеров пусть отвечают...
Считаю, что такой способ управления поможет большему количеству новичков, таким как я...


Автор: Нимя, дата: 8 февраля, 2011 - 05:56
#permalink

А как подсчитать в обратном количестве? Например:
1) из шляпы достали 6 кроликов
2) из шляпы достали 5 кроликов
...............................................
n) из шляпы достали n кроликов


Автор: Гость (не зарегистрирован), дата: 9 февраля, 2011 - 18:17
#permalink
for (var i=3; i>=1; i--) {
            alert("Из шляпы достали "+i+" кролика!")
        }

Автор: Нимя, дата: 9 февраля, 2011 - 18:47
#permalink

)))))
всё оказалась так просто!
но всеравно спс.


Автор: museyca (не зарегистрирован), дата: 7 марта, 2011 - 00:21
#permalink

Подскажите уважаемые, Здесь - [!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"] - скрипт работает,
а тута - [!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"] - не хотит.
Скрипт нужный, но не менять же все остальное.


Автор: ihar, дата: 15 марта, 2011 - 16:46
#permalink

Подскажите а что значит подключение типа

<script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script>

имеется ввиду после

".js"

стоит знак вопроса и потом перечисляются какие то значения (

"effects,builder"

)


Автор: Гость (не зарегистрирован), дата: 17 апреля, 2011 - 01:57
#permalink

Первый пример - понятно - скрипт пишется в разделе BODY и запускается сам
Второй пример - скрипт вынесли в раздел HEAD 'для отделения от документа' и оформили как функцию. Но! при этом он перестал запускаться сам и для его запуска надо использовать кнопку.
Третий пример с внешним скриптом тоже для запуска использует кнопку.

Как сделать чтобы эта функция в нужном месте сама запускалась без кнопки?
Например генерила несколько строк текста.
Или мне надо будет на каждую функцию в своей страничке кнопку делать?


Автор: armix (не зарегистрирован), дата: 19 апреля, 2011 - 13:26
#permalink

Добрый день! Вставляю скрипт в тэг

. Не работает.
Вот такой текст:

JavaScript not available!

Если поставить сразу после body, то всё O'K


Автор: PageRanker (не зарегистрирован), дата: 3 мая, 2011 - 11:18
#permalink

Вот! Вот же оно! Именно такую подачу материала я и искал.
Начинаю изучать Яву с Вами))
Спасибо.


Автор: ulit (не зарегистрирован), дата: 4 мая, 2011 - 15:02
#permalink

А как сделать всплывающее древовидное меню?


Автор: прохожий (не зарегистрирован), дата: 10 мая, 2011 - 22:03
#permalink

У меня проблема с подключением скрипта.
вот как он подключался в модуле
$document->addScript(JURI::base(true).'my.js');
комментировал строку
-----
вот как я его в шаблон вынес

но он не пашет.
Как его подрубить?


Автор: прохожий (не зарегистрирован), дата: 10 мая, 2011 - 22:06
#permalink
вот как я его в шаблон вынес 
<script src="my.js"></script>

Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
8 + 10 =
Введите результат. Например, для 1+3, введите 4.
 
Текущий раздел
Поиск по сайту
Реклама

Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние темы на форуме
Forum
Последние комментарии