Подключение и выполнение 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), давно умер. Современные браузеры комментарии просто игнорируют. Не ставьте их.
|
Здравствуйте!Запускаю скрипт для подсчета кроликов по кнопке. скрипт в отдельном html, браузер Mozilla FireFox - не работает. в чем дело не подскажете? подддержка JavaScript в браузере включена.
Если Вы имеете в виду, что вы выносите js-код в отдельный файл, то там нужно поставить расширение .js
все работает локально, смотрите у себя недочёты.
в начали добавь
Согласен с Zzet
НЕ работает пример с head на локальном компьютере. На сайте если нажать Просмотреть - работает, но если скопировать код и сохранить на локальном компьютере, то ничего не происходит в браузере, появляется только кнопка- жмешь на нее , ничего не происходит
Попробовал. По виду - при копировании и вставке - код вставляется в 1 строчку, это так у вас?
Tikson, ну ёмаё, правильно, ничего не выйдет, потомучто файл с расширением js сохранен на сервере, чтобы код работал у тебя, тебе нужно написать такой файл у себя на компе и прописать к нему путь!!! Ну что тут может быть не понятно???
На каждом сервере есть интерплитатор php и js кода - своего рода рабочая среда для действия кода, А браузер всего лишь поддерживает эту сдреду! Для того что бы разрабатывать сайт с js и php кодом, нуже не только рабочий браузер, но и сама рабочая среда для кодов! Вы не сможете просто так на PC создать папку, в ней создать php файл с большим кодом и запустить его в браузере и проверить работу кода! Он не будет работать! Нужен Денвер или другой лок. хостинг!
Дааа, велики ваши познания сер, можете сейчас прям в программеры с окладом в $5000 идти. В яндекс там или гугл:)))
С php кодом так не получиться, а вот с JS вполне! Создаешь папку, засовываешь в нее html в который внедряешь JS и все будет работать! Ну если конечно руки из плечей растут... Можешь хоть ОС свою переустановить и к интернету не подключаться, а и дрова не нужны на много что ставить, все что нужно это браузер, желательно по новее!
Ну или можешь просто нажать F12 (или "Инспектор кода"), перейти во вкладку Console и прям там писать JS. Судя по твоим познаниям тебя удивит результат таких действий!
Правильно... В Head тег titile является необходимым без него ничего не запашет
товарищ, тег title для вывода названия, если поместить внутрь код, то он только покажется в заголовке и ничего не сработает!
>По виду - при копировании и вставке - код вставляется в 1 строчку, это так у вас?
Не могу найти этому обьяснение, но сегодня этот пример работает...). Причем действия я выполнил все теже, что и впрошлый раз.
В одну строчку код не вставлялся, все нормально вставлялось в мой текстовый редактор.
В любом случае благодарю за помощь.
Тоже самое - с первого раза не сработало, скопированное вставилось в одну строку. Если вставить также как здесь - построчно, то все сработает.
ребят, а вам про кеш никто не рассказывал ?
Все работает, просто когда вы пишите код в файле .js
такие параметры как:
script type="text/javascript"
учитывать не надо. И писать надо без них. Тогда все работать будет.
Скрипт не работает когда при копировании заносится в одну строчку.
Там комментарии закрывают alert
Ну что вы все ерунду пишите. Одна строчка, коментарии.... что мы здесь все, малыши - элементарных вещей не знаем?
Пример не работает. Почему?
Учебник содержит ошибку:
- ТАК НЕ ПИСАТЬ.
- вот так писать. И все заработает)))
- ТАК НЕ ПИСАТЬ
- ВОТ ТАК ПИСАТЬ
Первый слеш перед my (или js - неважно) лишний.
Читайте про адресацию.
подтверждаю в ФФ 3.5 не работает если первый "/" перед js ставишь
Спасибо!!!
Отдуши чувак! помог!
Можно и так:
Если вы про кнопку с кроликами то уберите комментарий в коде и всё будет окей.
А у меня все пошло сразу) На стандартных настройкай эксплорера) Поэксперементировал) викинул лишнее добавил свое все работает))) Даже удивился этому))))
Спасибо за отличный учебник!
Скажите можно ли в отдельном файле js писать несколько скриптов?
Если да, то как их разделить в этом файле и как вставлять на страницу
script src="?????.js" ,
или для каждого скрипта нужно создавать отдельный файл?
С уважением Антон.
Чтобы подключить несколько скриптов - используйте несколько тегов:
А как в самом файле js их раздеть?
<script1>Скрипт</script1>
Можно так или нужно иначе?
Извените за мои наивные вопросы!
С уважением Антон.
Вопрос не понял.
src="/js/script2.js" вставляю в HTML файл.
А в отдельном файле со скриптами JS как разделить (задать имя) каждому скрипту, если их несколько? script1, script2 и т д
Я так понимаю, вы имеете ввиду несколько функций в одном файле?
Тогда нет необходимости их как-то разделять. В одном файле может находиться множество различных функций, каждая из которых выполняет свою задачу. Просто подключаете файл js и в html вызываете нужную функцию, на пример так:
из второго примера вызывает функцию count_rabbits()
Во внешнем файле js три текста
document.write("Текст 1");
document.write("Текст 2");
document.write("Текст 3");
Как каждый отдельный текст вставить в HTML файл?
script src="?????????.js" Как им задать имя? Я это спрашиваю.
Помещай каждый текст в отдельную функцию и выводи эту фунцию в любом месте страницы.
В Джумле с использованием редактора TinyMCE любое указание адреса для параметров тега типа src, даже если пишешь первый слэш, после апдейта отображения в модуле и последующем просмотре кода выдает адрес без рута (первого слэша). Так что вот так...
А как быть если в одном *.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("Тестовая строка")
}
тестовая строка не выводится. без второй функции работает.
ты логику проверь разочек
можно ли в отдельном файле js писать несколько скриптов? > можно
для этого можно каждому скрипту назначить свою функцию и потом использовать ее. но для упрощения поиска ошибка лучше если каждый отдельный скрипт висит в своем файле
Скажите пожалуйста, как вывести на страницу, где находится кнопка, информацию: i=1;i=2;i=3, из приведенного кода
function count_rabbits() {
for(var i=1; i=1;i<=3; i++) {
// оператор + соединяет строки
alert("Из шляпы достали "+i+" кролика!")
}
}
Заранее Вам благодарна.
Помогите разобраться. Я делаю как в примере про кроликов с кнопкой для запуска но со своей функцией случайных чисел. у меня не выводится ни чего. вот код проги
Ничего не выводится, т.к. отсутствует оператор вывода, например, alert.
А куда его сувать!
Вместо возвращения значения (return) - в вашем случае можно сразу вызвать alert.
Я так понимаю, x и y - соответственно левая и правая границы диапазона случайных чисел? В коде уже исправлено.
При вставке всего текста скрипта в
function go()
{
}
вызов кнопкой работает.
При в вставке файла с этой функцией в
вызов кнопкой не пашет. Почему?
"браузер читает HTML-страничку" лучше заменить на: "браузер воспроизводит HTML-теги"
Как задать свойства шрифта (цвет, размер и т. д.) при помощи javascript только для этого текста?
document.write("ТЕКСТ");
Используйте HTML:
document.write("ТЕКСТ");
Доброго времени суток
Не могли бы вы уточнить, каким образом писать адрес внешнего скрипта, (объясняю ситуацию: существует html страница и локально в это же папке лежит скрипт)
- это если скрипт лежит в одной папке с html-файлом
Извиняюсь за повторы - не заметил, что не все тэги разрешены....
при открытии карт или удалении писем появляется надпись,что нет сервиса javascript и надо подключить в надстройках браузера. ПОМОГИТЕ ПОЖАЛУЙСТА. я неуверенный пользователь ПК и видно,что-то нахимичила. ПОМОГИТЕ
в браузере инструменты - настройки - включить javascript
вопрос: а если внешних скриптов несколько, то имена всех методов в них должны быть разными? чтобы не было путаницы, какую функцию вызывать по событию, например onclick? или можно как-то явно прописать через имя скрипта?
Сколько бы внешних скриптов не было - объявленные в них функции и переменные находятся в одном глобальном пространстве имен window.
Вопрос: внешний файл .js кроме текста самого скрипта должен еще что-то включать?
Поясню свой вопрос: хочу вынести скрипт в отдельный файл, вырезала текст скрипта из страницы, добавила src, а сам текст вставила в отдельный файл. Что еще в этом файле надо дописать?
Нет, js не должен и не может включать ничего, кроме текста скрипта.
это для чего вначале и в конце в файле скрипта вставляют?
не в файл, а во встроенный в страницу скрипт. чтобы не надо было кодировать спецсимволы (например, писать & вместо &)
а в отдельном файле такая конструкция не нужна, хотя и безвредна.
Только в XHTML. В HTML тег CDATA не рекомендуется
1)А если у меня на странице много скриптов script...../script
Могу ли я вырезать их из тегов и написать все в одном подключаемом файле .js
2) И если этот файл подключу к другой странице, где некоторые включаемые скрипты не используются - не создаст ли это ошибки?
Скажите, пожалуйста, а можно из одного файла script.js обращаться к другому файлу lib.js и использовать функции, описаные в нём?
И ещё:
Из родительского окна открывается дочернее(open().
Из дочернего окна происходит обращение к массиву users[], находящимуся в родительском: opener.document.users[](если это имеет значение - каждая ячейка массива содержит объект - получается как бы многомерный массив).
Если происходит просто редактирование значений то всё нормально, а если было добавление новой ячейки(opener.document.users.push(), то при закрытии дочернего окна, и повторном его открытии в ИЕ(6) выскакивает ошибка:
"Вызываемая сторона(сервер[а не приложение-сервер]) недоступна и исчезла; ни одно бодключение более не действует. Сам вызов не был выполнен".
Мозилла и Опера не капризничают...
Файл lib.js должен быть загружен, тогда его функции станут доступными. Загрузить его можно, добавив в HTML соответствующую строчку <script src="...></script>
Можно также добавить ее через DOM.
А как в скрипте вызвать другой файл скрипта - у меня проверка на наличие скрипта происходит, чтобы не грузить дважды.
function checkjs() {
if (window.hs === undefined) {
alert (window.hs+'Нет такая');
} else {
alert (window.hs+'Есть такая');
}
}
checkjs();
Кстати, спасибо за отличный мануал.
здравствуйте. ничего не знаю о js. объясните пожалуйста, что такое локальная переменная
Переменная, которая существующая только в одной функции
Это отличный учебник для начинающих изучать JavaScript.
Благодарю автора за работу и надеюсь, что в будущем сайт будет только развиваться.
ВОПРОС:
Объясните "i++" в конструкции for и
"+i+" в функции alert
С уважением, Григорий Май
5/I/2010 г.
в конструкции for (и не только там) означает увеличение значения переменной i на 1 и полностью эквивалентно
.
В alert'е +i+ сам по себе был бы бессмысленным (и даже ошибочным, в отличии от i++), т.к. эти операторы принимают 2 аргумента. А вот
уже имеет смысл. Здесь происходит конкатенация (склеивание) 3 строк (при этом все нестроковые переменные принудительно приводятся к строкам). Т.е. сначала будет выполнено
, а потом к результату присоединено
. Это выражение аналогично
Более подробно советую почитать в разделе операторов JavaScript.
'i++' не эквивалентно 'i = i + 1' или 'i += 1', им '++i' эквивалентно
Да и мне тоже.
i++ увеличивает переменную i на единицу
+i+ "склеивает" 3 строки:
1) "Из шляпы достали "
2) i (значение переменной, потому без кавычек)
3) " кролика!"
+i+ "склеивает" 3 строки
Можно по подробней, пожалуйста?
+i как я понял переводит i из числа в строку, а вот зачем второй +?
Что бы прибавить третью строку " кролика!"
аааа валяюсь I = 5 это целая пременная
когда пишут Строка+целая переменная т.е "Строка"+I результатом будет "Строка 5"
Так же как "Строка "+"5" т.е. конкатенация двух строк,
В конструкции for i++ означают увеличение переменной i на единицу.
В конструкции alert +i+ плюсы означают оперцию конкатенации, то есть сложения строк. То есть "текст"+переменная+"текст". То есть чтоб интерпретатор знал, где вставлять текст, а где значение переменной из области памяти.
Уважаемый, Илья!
Простите если задам глупый вопрос, но все же!
На сайте есть несколько счетчиков количества посетителей в каждом из которых используются подключаемые файлы javascript. Возможно ли объединение данных файлов в один файл javascript (с целью уменьшения количества обращений к файлам и уменьшения времени загрузки). Если возможно, то как? Если не возможно, пожалуйста объясните, почему?
Спасибо!
Спасибо! Теперь понятно что означает +i+
При указании атрибута src содержимое тега игнорируется.
- не всегда! При кое - каком обстоятельсве содержимое может исполнятся!
Наткнулся в сети на еще один способ выполнения js при загрузке документа -- механизм подстановок (entity). Вроде
Я правильно понял, что этот механизм безнадежно устарел и современными браузерами больше не поддерживается?
Этот механизм родился в Netscape давно еще. Он и его аналог в IE (expressions) действительно устарел и не рекомендуется к использованию.
У меня вопрос. В начале кода нужно написать эту строку.У меня никак не запускается в браузере- выдает синтаксическую ошибку. Ведь первая строка- Это адрес? Относительно чего его нужно указывать?
вот эта строка-
очень неудобно, что при выделение текста программы, выделяются номера строк.
возможно ли вынести эти цифры как например тут: http://freshcoder.ru/archives/56
?(не сочтите за рекламу)
Там справа в менюшке появляющейся есть кнопка - нажмите на нее и номера строк исчезнут.
не стоит пользоваться копипастом если вы начинающий, пишите все вручную, это поможет быстрее усвоить синтаксис)
к тому же если автор кода допустил ошибку или опечатку, то при копипасте вы ее явно не саразу заметите или не заметите, и будете долго ломать голову почему скрипт не работает))
Автору огромный СПС))
Все скрипты пашут!
Удивительно, что в некоторых комментарии совсем элементарные вопросы))) неплохой учебник, молодцы=)
доброго времени суток.
подскажите, пожалуйста, почему при объявлении функции в пределах body её вызов из head оканчивается неудачей? спасибо.
Потому что HEAD обрабатывается раньше, чем BODY и про твою функцию в этот момент браузер еще ничего не знает.
Какая последовательность загрузки-исполнения HTML, JS, CSS в браузерах?
А как сделать так что бы – если человек зашёл на сайт и потом взял и хочет подключится javascript
Пожалуйста подскажите
Сформулируй понятней
Спасибо огромное за одну строчку "При указании атрибута src содержимое тега игнорируется"! Так и бы продолжались мучения и вопросы "почему же не работает внешний скрипт???"
Спасибо ещё раз!
> Объясните "i++" в конструкции for и "+i+" в функции alert
>
> С уважением, Григорий Май>
ne razreshajte takie kommenty..
>ne razreshajte takie kommenty..
полностью поддерживаю!
зы ресурс отменный, все в одном месте, красата! спасиба!!!
Здраствуйте. Я скачал один скрипт для сайта. Закинул его в папку Firefox. Далее судя по рекомендации в контекстном меню надо зайти во вкладку "изменить параметры узла", "сценарии", обзор ну и вставить скрипт. Единственная проблема - в контекстном меню у меня нет параметров узла! Перешерстил все настройки, но так и не нашел. Подскажите пожалуйста, где в Firefox параметры узла, либо как этот скрипт вставить по другому. Спасибо.
Такая штука в Опере. В мозилле нету. А зря.
В мозилле для подключения пользовательских скриптов есть расширение Greasemonkey.
Обьясните кто нибудь как мне при редактировани страници поместить или всунуть... большой скрипт в одну строку-окно!??? Для економии места и красоты??? Пример покажите что вырезать и вставить туда скрипт или чем пользоваться в редакторе???
так никто и не написал как правильно оформитььб скрипт во внешнем файле.
все написали, читай камменты
Если еще для вас вопрос актуален, то у меня получилось вот так
В html страницу вроде такого
А в самом файле скрипта пишем без каких либо тегов и комментариев
Пример:function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i
Во внешнем скрипте нужно писать чистый javascript, уже не используя тэги , т.е. только то, что идёт между ними (когда скрипт вставлен прямо в тексте HTML-страницы).
я так и не понял как писать на javascript(((омогите обьясните основы
Уважаемый автор.
Не могу найти примеров и описания работы if.
Мне нужно чтоб в интервале дат, например с 1.05. по 3.06 выводился текст а в остальное время нет. Как это лучше сделать.
ошибка:
поэтому даже ЕСЛИ атрибута type нет - все работает ок.
Я новичок и, судя по всему, не знаю элементарных вещей.
Для всех моих скриптов браузер требует разрешение на исполнение. Как автор этой странички подключил скрипты, что их работа полностью незаметна для пользователя? Не могу найти материал - ни в статьях, ни в поиске, ни в учебниках. Как будто такой проблемы вообще не существует. Буду благодарен, если подскажете.
слушай сюда новичок 8-) я тоже уже конечно не новичок но все же я такой же как и ты... если я тебя правильно понял ты говоришь что в браузере пользователю каждый раз придется нажимать "разрешить" чтоб разрешались использование скриптов да? если так то это можно исправить например:
1 то что ты говоришь происходит не со всеми браузерами а только с иннетЭксплорер или еще каким то браузерами (я не све знаю) но с опера такого нет. а пользователям если они через иннетЭксплорер заходят то надо будет каждый раз подтверждать о разрешении. но если они догадаются в настройках своего браузера поставить галочку "всегда разрешать использование сценариев для данного сайта" то в дальнейшем он может спокойно восхититься твоими сценариями(скриптами в действии)....:-)
надеюсь что я тебя правильно понял если нет то напиши мне в аську 558-444-560
а вот такое разве не используется?
Вопрос такой.
Можно ли подключить js файл со стороннего сервера?
Например где то допустим на ya.ru крутится скрипт test.php внутри которого подключается
Возможно ли такое? На первый взгляд в целях безопасности, такое должно быть не допустимо, но с другой стороны, ведь я могу свободно скачать любой js скрипт с ресурса javasript.ru...
точно так же как и с картинками - ты можешь в своём блоге указывать URL картинок из ВКонтакта или других сайтов, не закачивая себе на сервер (некоторые сайты блокируют такое "воровство" и вместо картинки ты увидишь картинку "фото недоступно" с логотипом того сайта или что-то подобное).
java-скрипты можно юзать с других сайтов (есть специальные хранилища например cufon-шрифтов, откуда скрипт загрузится гораздо быстрее, чем с посредственного хостинга). Если ты используешь скрипт нелегально - админы его могут изменить или удалить при реконструкции своего сайта и у тебя всё полетит.
А использовать чужие php, в которых идут обращения к БД тебе вряд ли удастся.
не хватает описания атрибута charset в теге script. я использую линукс, а в нем по умолчанию при создании документа идет кодировка utf8, но когда загружается скрипт видимо что то другое, поэтому надо явно указывать.
Если не юзать виндовый блокнот, а нормальные редакторы, то кодировка по-умолчанию тоже utf8, проблем не наблюдал.
Даже так - с utf8 питоновские скрипты нормально отображают кирилицу в виндовой консоли (если декодировать). Если кодировка py-файла ANSI и там есть кирилические строки - то такой скрипт даже не запустится.
Автору огромное спасибо - со второй попытки все получилось!
function count_rabbits() {
for(var i=1; i<=3; i++) {
// оператор + соединяет строки
alert("Из шляпы достАААли "+i+" кролика!")
}
}
Именно так должен выглядеть отдельный файл со скриптом! (а разместить его удобно создав через ftp отдельную папку,)
Подскажите плиз. можно ли сделать в яваскрипт, как в CSS несколько файлов стилей в один включить? В CSS это так: @import url("style.css");
вот тоже самое тока несколько файлов яваскриптов в один подключить?
Что означает text/ в script type="text/javascript"?
атрибут type указывает MIME-тип содержимого контейнера. MIME-типы говорят браузерам как обращаться с конкретными расширениями.
А text говорит о том, что это... текст))
бывают еще и application, video, audio...
подскажите пожалуйста начинающему. код javascript выполняется между тегами
//код скрипта
однако во втором примере вызов функции в теле HTML документа происходит ниже закрытвающего тега javascript. Сделать пример получилось и все работает, спасибо, но хотелось бы узнать, почему это так. спасибо заранее
Внутри ... функция только определена, а ниже она используется как уже известная.
как и где подключится Java Script?
У меня проблема, помогите, что делать незнаю
скачал и установил два срипта, вот так:
Главная
Но работает только один (нижний), что делать незнаю, менял местами работает только нижний, извращался как только можно и нелзя неполучается. ПОМОГИТЕ!!!!!!!!
Два файла в одной папке - Lesson1.html и script.js.
Содержимое файла Lesson1.html:
-------------------------------------------
// конечно вместо [] уменя <>, просто не знаю как здесь заставить отображаться.
Содержимое файла script.js:
---------------------------------------------
function count_rabbits() {
for(var i=1; i<=3; i++) {
// оператор + соединяет строки
alert("Из шляпы достАААли "+i+" кролика!")
}
}
---------------------------------------------
При открытии браузером файла Lesson1.html кнопка корректно отображается, но но при клике по ней ничего не происходит...
ВОПРОС - почему не выполняется скрипт, где ошибка?
Смотрите, что говорит консоль ошибок.
Ошибка: 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
Вот здесь я уже ничего не понимаю, могу предположить что имя функции не верно записано, так нет же, все правильно... Что еще???
Поскольку оба файла в одной папке, то должно быть так: src="script.js"
Сорри, форум вставляет лишнюю папку в путь (/forum/). Поэтому напишу кириллицей: должно быть так: срц="скрипт.js" (без папки /forum/).
проверьте, подключается ли у вас файл script.js...
функция ваше не определена... проверьте, подключается ли у вас файл script.js...
Вы уж простите, но как это сделать?
если браузер хром или файрфокс, то щелчок правой кнопкой - просмотр исходного кода...
там пути отображаются как ссылки, щелкаете по ссылке с вашим js, если открывается, то ищем причины дальше, нет - так прописываем верный путь до js
Сделал все выше сказанное. Адрес тот, что я указал в коде файла "Lesson1" - /forum/script.js. Кликая по нему при просмотре исходного кода ничего не открывается. Следовательно неверный путь. Но файлы в одной папке и адрес прописан точно как здесь объяснили.
Спасибо, проблема решена.
Стоило лишь верно прописать путь. В моем случае это было:
src="/script.js". Так писать не верно, нужно без /. Вот так - src="script.js".
Я так и не понял откуда у Вас взялся вот этот вид src="/forum/script.js", что за /forum? Может это конечно и правильная запись с точки зрения чего-то там, но новичка это только заставляет поломать мозг пару часов.
Ух ты. Парни что-то здесь ни так в коде отображения постов. В сообщении выше, в третьей строке последнее предложение, вот этого /forum быть не должно. Подставляется автоматом, это и заставило меня пол ночи не спать
в комментарии к первому примеру написано:
"Объявление var i
Объявление переменной внутри цикла: i - локальная переменная."
а в справочнике где цикл for про ту же переменную:
"initial-expression
Выражение (включая присваивание) или объявление переменной. Как правило, используется для инициализации переменной-счетчика. Это условие может объявлять новую переменную при помощи var. Такая переменная не является локальной переменной цикла, она видна во всей области видимости."
так локальная она или глобальная в JS? спасибо.
...или здесь надо говорить не "глобальный", а "видимый за пределами блока". Хотя и это не вариант, если в JS видимость задается функцией, а не блоком...
Да, как Вы верно заметили, область видимости в JS задается только функцией. Это значит, что переменная, объявленная в for(var ...) будет локальной для текущей области видимости. Т.е. будет доступна всюду внутри функции или, если мы вне функции (т.е. в глобальной области), то переменная соответственно станет глобальной.
В отличие от, например, Си, где область видимости задается блоком и переменная, объявленная в for(...) будет видна только внутри тела цикла.
Могут ли функции объявденные во внешнем файле работать с глобальными переменными?
То есть у меня в HTML-страницу встроены скрипты.При переносе их во внешний файл и подключении функции не работают.Попросту не видят глобальных переменных,объявленных во встроенных скриптах на html-страницах.
Есть ли выход?Может тогда весь javascript засунуть(вместе с объявление глобальных переменных)?Это будет очень неудобно...
От души посмеялся над выражением "Браузер, от которого прятали код (старый Netscape), давно умер." )
Netscape слабо поддерживал javascript, css и даже css. Разработчики больше внимания уделяли различным дополнениям к браузеру и его функционалу, чем совместимости.
Из-за этого в 1998 году они перестали прятать код(этим самым сделав проект бесплатным) в надежде, что им помогут улучшить совместимость. Но этого не произошло.
Позже AOL(компания разработчиков) забросила проект "Netscape" и занялась разработкой браузера "Firefox".
Если бы AOL не прятали код сразу, то скорее всего собрали бы большую группу энтузиастов и проблема совместимости решилась.
Как видим ты от души посмеялся только над своим незнанием.
Netscape слабо поддерживал javascript, css и даже html. *
Спасибо за отличный учебник!
Подскажите как сделать так, что бы при нажатии на ссылку запускался следующий скрипт:
var newWin = window.open('test.php','JSSite', 'width=600,height=500,resizable=yes,scrollbars=no,status=yes,toolbar=no')
newWin.focus()
Никак не пойму, куда это присандалить. Может и через ссылку это нельзя реализовать, тогда как??
код с window.open... и т.д. засунуть в функцию, скажем, openNewWin()
В ссыдке прописать: Нажми сюда Но такой способ не рекомендуется. Или вот так Нажми сюда
Прошу помочь. Уже третий день не могу решить проблему. Мне нужно вставить в javascript еще один javascript. Подскажите, каким образом это возможно сделать?
Подсчет кролей выдает такую ошибку
missing ; before statement
[Прерывать на этой ошибке] 05 function count_rabbits() {
что тут не так не пойму???
+ ко всему свежие комментарии аж в самом низу, кто их прочитает, тем более ответит на них???
спс
Цифры 05, 04, 03 и т.д. убери.
перечитал весь блог, довольно неплохо
с предыдущей проблемкой сам разобрался)) но хочу оставить пожелание, ввиду того что никто не отвечал на вопрос) 2 дня, новые посты отображать вверху, а не внизу, и(или) набрать пару модеров пусть отвечают...
Считаю, что такой способ управления поможет большему количеству новичков, таким как я...
А как подсчитать в обратном количестве? Например:
1) из шляпы достали 6 кроликов
2) из шляпы достали 5 кроликов
...............................................
n) из шляпы достали n кроликов
)))))
всё оказалась так просто!
но всеравно спс.
Подскажите уважаемые, Здесь - [!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"] - скрипт работает,
а тута - [!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"] - не хотит.
Скрипт нужный, но не менять же все остальное.
Подскажите а что значит подключение типа
имеется ввиду после
стоит знак вопроса и потом перечисляются какие то значения (
)
Первый пример - понятно - скрипт пишется в разделе BODY и запускается сам
Второй пример - скрипт вынесли в раздел HEAD 'для отделения от документа' и оформили как функцию. Но! при этом он перестал запускаться сам и для его запуска надо использовать кнопку.
Третий пример с внешним скриптом тоже для запуска использует кнопку.
Как сделать чтобы эта функция в нужном месте сама запускалась без кнопки?
Например генерила несколько строк текста.
Или мне надо будет на каждую функцию в своей страничке кнопку делать?
Добрый день! Вставляю скрипт в тэг
. Не работает.
Вот такой текст:
JavaScript not available!
Если поставить сразу после body, то всё O'K
Вот! Вот же оно! Именно такую подачу материала я и искал.
Начинаю изучать Яву с Вами))
Спасибо.
А как сделать всплывающее древовидное меню?
У меня проблема с подключением скрипта.
вот как он подключался в модуле
$document->addScript(JURI::base(true).'my.js');
комментировал строку
-----
вот как я его в шаблон вынес
но он не пашет.
Как его подрубить?
Все прекрасно работает, когда .js лежит в одной папке с .html путь надо указать без "/" т.е.
Вот так. Спасибо авторам.
Определите значение переменной с после выполнения следующего фрагмента программы. A=6 b=15 a=b-a*2 if a>b then c=a+b c=b-a end if.
а уменя файлы js не открываются когда аткраваю ошубку выдает Windows Script Host что делать подскажити плиз
Пожайлуста,подскажите как на ЧИСТОМ JS подключать ФАЙЛЫ скриптов или стилей в зависимости от браузера.Браузеров-3 шттуки-ФФ, Опера и Инт Експлорер. Такое - сделанное на Квери, тормозит почему то все скрипты.
На чистом JS у меня почему-то работало не корректно. Помогите кто может ,уважаемые гуру !Я видел,что там фигурирует document.write('');
и так подключаешь скриптов сколько тебе нужно, или объясни подробнее что нужно сделать
Вот кусочек скрипта для определения браузера, как я понял многие ищут тут.
Вариант по-проще:
Конечно, тут можно применить тернарный оператор ( * ? * : * ) вместо if и внести их в описание циклов for для сокращения места, но для новичков так нагляднее.
Задам вопрос.. вдруг ответит кто-нить..
Нужно выполнить скрипт задисейбливания текстовых полей при загрузке страницы, если соответствующий checkbox=checked. Каждое поле и checkbox имеют уникальный ID. При выполнении клика по checkbox функция работает. Как выполнить эту функцию много раз при загрузке страницы. Куда поместить и как правильно написать вызов этой функции?
к примеру, в HTML:
...<--input type="checkbox" id="act_enID" onClick="onDis(ID);">
<--input type="text" id ="sddID">...
в данном случае onClkick() прекрасно срабатывает.
Сама функция:
function onDis(idElem) { document.all["sdd"+idElem].disabled=document.all["act_en"+idElem].checked;
return;
}
Я на моём сайте в Народ.ру (он создаётся с помощью конструктора сайтов) хочу сделать такую же эффективную поисковую систему, как у Википедии, поскольку мой сайт тоже носит энциклопедический характер. Но я не любитель таких сложных кодов и такого сложного устройства страниц, как в Википедии. Мне нужно так:
я пишу в поиске слово - название статьи (оно же и предмет статьи) и после нажатия кнопки "Поиск" (в моём сайте: "Búsqueda") открывается страница моего сайта с этой статьёй. Но мне бы код попроще, чем в Википедии. Я смотрел тот исходный код - слишком сложный. Существует ли более элементарный код, пусть с javascriptом, который мог бы обеспечить моему сайту такую возможность. Обычный блок "Поиск" конструктора сайтов ничего не даёт вообще. Не находит даже то, что на моём сайте явно есть, хотя названия страниц, их описания и ключевые слова я указываю в свойствах страницы при редактировании и добавлении новых.
Спасибо!
Как подключить 1 скрипт из другого? Напр. 3Dlib.js используется в 3DGlassesLib.js?
Заранее благодарен.
Проблема с кодировкой.
Когда выношу скрипт в заголовок или пишу его внутри тела, русские символы читаются без проблем.
Ежели вывожу скрипт в отдельный файл с расширением .js то выходят иероглифы.
Кодировки utf-8 и 1251 не помогла.
скажите а как сделать так чтобы js(в нем есть свой код) обрабатывалось по нажатию на картинку
Есть файл.js
Как подключить .js в HTML?
Можно пример HTML документа?
...
Добрый день.
У меня следующая проблема:
Страницу создаю динамически. По windo.open.
Все файлы js подгружаю в head.
После тэга пишу скрипт:
$(document.ready(function(){...});
На $(document).ready получаю сообщение: "Предполагается наличие объекта".
Аналогичное сообщение получаю на вызов любой функции из подгруженных
файлов.
Такое ощущение, что все файловые скрипты не видны.
После отрисовки окна всё работает нормально.
Не подскажете в чём проблема, и как с ней бороться?
После скрипт писать? (Это я, понятно, шучу).
Вдогонку.
Во-первых: виноват. Пропущены <body> и </body> в пятой и последней строках, соответственно.
Во-вторых: этот эфект наблюдается только у IE. Все остальные браузеры срабатывают нормально. А вот как с "осликом" быть?
Доброго дня.
Пытаюсь разобраться, куда же лучше помещать скрипты. Считается ли правилом хорошего тона, например, все скрипты размещать в HEAD, по возможности не хранить ничего в BODY и использовать методы типа "onContentReady" вместо того, чтобы вставлять скрипт после нужной ему html-разметки?
Если часть скриптов в HEAD, а часть в BODY, начинаешь в определенный момент путаться от того, что все смешано.
День добрый.
Возник вопрос, как подключить javascript через js файл.
Вот собственно сам код
прописывал в теле
если вставить в тело скрипт, то работает, а инклуд файла не чего не дает, подскажите что я делаю не так?
Здравствуйте, я начинающий веб программист, и делаю свой первый заказ, и у меня возникла небольшая ошибка: я засунул в боди , понаписал там всего, и запустил, но Этот код не выпонился, даже алерт не выполняется. Решил попробовать засунуть код в хеад - выполнился, но не весь, потому что я с getElement работал.Я подумал что браузер почему-то не видит его, заглянул в исходный код - все в порядке. Решил в другом файле похожий код в боди выполнить - выполнился. Именно в этом файле в боди не выполняется. Не понимаю почему, помогите!!!
"я засунул [script] в боди"
"Именно в этом файле [script] в боди не выполняется"
вместо [] : <>
вот собственно сам код, первый алерт все-таки выполняется,но дальше пусто
И еще - что такое песочница?
Прошу прощения обнаружил ошибку, но вопрос не решен.)
Что за?
Uncaught TypeError: Object # has no method 'getElementById'
браузер Сhrome
Написал скрипт в отдельном файле mymenu.js для обработки вертикального раскрывающегося меню. В html-файле подключил скрипт: . На локальном компьютере через браузер проверяю - все работает: меню сворачивается, разворачивается. Выгружаю в Интернет - не работает. Такое ощущение, что скрипты не подключаются. Не пойму, почему. Помогите, пожалуйста!
Подскажите, а можно ли из одного файла *.js вызвать другой файл *.js?
...Я прохожу циклом по всей таблице вставляя в каждую строку по 3 штуки одинаковых парент-дивов с множеством рисунков в каждом.
Скажите пожайлуста, отразиться ли такое насыщение ДОМ, на скорости исполнения скрипта применительно к такому контенту и скриптов ,которые не относятся к таблице
На 2 строках таблици такое пока работает нормально..
Застрял на таком вопросе, перерыл все учебники и интернет...
1) Как в локальной функции изменить глобальную переменную? Пожалуйста с подробным примером. Я чайник.
2) как вывести в блоке div в тексте значение текстовой переменной.
пример:
//Очень прошу ответить...
у меня SciTE ругается на скрипты:
unexpected symbol near '<'
что делать?
Спасибо, оказывается так просто привязать внешний скрипт.
Можно ли создать библтотеку скриптов ?
Здраствуйте люди, у меня проблемы такого. Я написал в html страницу такого пути и создан файл "/js/script1.js" этот скрипт работает только IE но другие браузеров не работает. Как решаем проблему?
...
Здравствуйте. У меня такой вопрос.
имеется html код
----
----
команда файла script1.js
function count_rabbits() {
for(var i=1; i<=3; i++) {
// оператор + соединяет строки
alert("Из шляпы достали "+i+" кролика!")
}
}
команда файла script2.js
function count_rabbits() {
for(var i=2; i<=4; i++) {
// оператор + соединяет строки
alert("Из шляпы достали "+i+" человека!")
}
}
При нажатии обоих кнопок работает команда только второго файла script2.js
Почему команда файла script1.js на первой кнопке неработает?
не могу понять что не так с html кодом??
По-видимому работает count_rabbits() определенный последним.
Возможно ли динамически подключить .js?
Допустим в директории /js-dinamic лежат некоторое количество (3-5) скриптов JavaScript. Но статично подключен некий один внешний скрипт из /js, который будет выполнять какие-то действия по их подключению.
Можно ли в нем подключить скрипты из /js-dinamic не указывая их в тексте HTML, а только средствами JavaScript?
Или из веб-консоли, например, в Chrome можно ли выполнить команду, подключающую внешний js, после чего можно использовать объекты подключенного скрипта?
У меня когда функция count_rabbits() находится в html файле всё работает нормально, а когда в файле .js, то вместо текста "Из шляпы достали "+i+" кролика!", в функции alert выводятся квадратики.
Привет,
Вот вернулся к началу.
Как грузятся JS скрипты браузерами? По очереди или все сразу. Если к примеру подключается в одном месте сразу 4 скрипта.
Я так понимаю браузер видит загружает содержимое, испольняет его, а потом переходит к загрузке другого скрипта и исполнению его кода.
Мне кажется FF грузит одновременно скрипты, когда я смотрю в FireBug.
По выполнению кода, в JS я так понимаю не могут 2 функции выполняться одновременно. Это так? В новой версии ecma это так?
Хотелось бы также на вашем сайте, больше информации по очередности загрузки CSS,JS скриптов и самого контента (для всех ли браузеров это одинаково).
А также по кроссбраузерному динамическому подключению скриптов.
Навигация по страницам с комментами не работает.
Скажите как один файл .js подключить только один раз? Например, текущий файл подключает file1.js и file2.js, а file2.js в свою очередь подключает file1.js. Как не подключить file1.js второй раз?
Помогите решить задачку:
нужно подключить отдельный скрипт .js, но сделать это так, чтобы он выполнялся только после загрузки всей страницы.
Например я знаю, что если скрипт в самой странице, то можно так:
$(document).ready(function() {
Скрипт, выполнение которого начнётся после загрузки страницы. Как сюда подключить скрипт из файла, например по адресу /js/script.js
})
Подключение типа
src="js/scriptaculous.js?load=effects,builder"
может значить, что текст файла "scriptaculous.js" формируется на сервере php-скриптом. (серверные скрипты, изучение php - это отдельная, большая тема).
То, что указано после "?" является параметрами для серверного скрипта.
Очевидно, что в зависимости от этих параметров текст подгружаемого js-скрипта может кардинально различаться.
Люди умные посоветуйте! Как же динамически загрузить js файлов? Скажем мы с перво загрузили 1.js(как обычно). И мне надо загрузить 2.js после нажатию на кнопку(button). То есть чтобы с самого начало не загружался 2.js.
Здравствуйте!
Я - новичок, не судите строго.
Делаю страницу "Расписание уроков с 1 по 11 классы".
Сделал:
Выберите, пожалуйста, класс
Класс
1 А
1 Б
1 В .....
...
11 В
Не домучил еще "document.getElementById("id_")"...
Подскажите, пожалуйста, код вывода результата на этой же странице.
Спасибо заранее!
А кто знает как можно подключить например 10 файлов с расширением js одной строкой чтобы не прописывать 10 строк.
Реально возможно такое?
Насколько понял из некоторых записей, что прописанный javascript не всегда может отображать работу на локальном, это как на Денвере имеется ввиду. Но в основном при установке многих разнообразных скриптов с javascript ведь на Денвере все работает или что то не так понял о данном написании.
Подскажите п-та как получить доступ к текстовому узлу подвешенному к узлу образованому тегом SCRIPT (узлу содержащему сам код) если сей скрипт нахадится вне страници ибо подключен по ссылке? Конструкция:
возвращает null на таких узлах.
нужно чтобы подключаемый к хтмл джаваскрипт файл ссылался ещё на другой джаваскрипт файл помимо своего джаваскрипт кода, добавлял скрипт другого
файла в себя через ссылку на него. это можно сделать?
Всем привет!Подскажите пожалуйста почему у меня не получается?
Вот javascrip код и html:
window.onload = function() {
initDate();
initTime();
}
function initDate() {
var now= newDate();
var dateString= (now.getDate()>9? now.getDate():'0'+now.getDate())+
'.'+
((now.getMonth()+1)>9? now.getMonth():'0'+now.getDate())+
'.'+
now.getFullYear();
document.getElementById('date').innerHTML = "
" + dateString + '
';
}
function initTime() {
var now= newDate();
var timeString= (now.getOurs()>9?now.getOurs():'0'+ now.getOurs())+
':'+ (now.getMinets()>9?now.getMinutes():'0'+ now.getMinutes())+
':'+ (now.getSeconds()>9?now.getSeconds():'0'+now.getSeconds()) ;
document.getElementById('time').innerHTML = "
" + timeString + '
';
setTimeout(initTime,1000);
}
time
Здравствуйте уважаемая администрация сайта и посетители сайта. ЯЫ пришёл за помощью, так как у меня не получается подключить js-файл.
Сразу объясню, тот метод, который у Вас здесь описан он работает во всех браузерах, но к большому моему сожалению, я делаю html-страницу для заложенного браузера в платформу 1С Предприятие 8.2, а он как на зло, не хочет воспринимать код, типа: . Поковыряв немного маны в инете нашёл такую конструкцию: , которая идеально работает. Но как видно из второго примера, мне приходится использовать прямые пути и у меня никак не получается их сделать относительными. Пробовал разные варианты конструкции Может кто сталкивался с подобным, поделитесь, если не трудно.
как подключить скрипт к хтмл странице, с помощью подключённого скрипта? т.е. вывести в head теги script и адрес другого файла?
ajax функция в теле функции на внешнем файле JS - не работает. Что нужно делать?
а как вызвать скрипт с параметрами?
У меня не работает строка:
Не подскажете в чем причина?
А как узнать адрес JS фаила
Потому что вот у меня адресс JS C:\Users\Я\Desktop\js\1.js
код
HTML фаил запускаю а библиотека не подключается хотя адресс совпадает или я что то непонил
Ребят помогите кому нетрудно в чем ошибка? что я непонял?
Добавьте js файл в одну папку с html документом, в котором он должен выполняться. Тогда в атрибуте src можно будет просто написать адрес script.js или js/script.js, для удобства.
Извените я только учусь js, и у меня есть вопрос. JavaScript'ы можно использовать как классы ? Я к тому что, определённый скрипт можно добавить в определённое место? Т.е например как у CSS
, такое вообще делается ?!
for (var i = 5 ; i <= 25; i = Math.imul(i, i)) {
alert('У машины отвалилось '+i+' деталей!')
}
var plan = ["############################",
"# # # o ##",
"# #",
"# ##### #",
"## # # ## #",
"### ## # #",
"# ### # #",
"# #### #",
"# ## o #",
"# o # o ### #",
"# # #",
"############################"];
function Vector(x, y) {
this.x = x;
this.y = y;
}
Vector.prototype.plus = function(other) {
return new Vector(this.x + other.x, this.y + other.y);
};
var grid = [["top left", "top middle", "top right"],
["bottom left", "bottom middle", "bottom right"]];
console.log(grid[1][2]);
// → bottom right
var grid = ["top left", "top middle", "top right",
"bottom left", "bottom middle", "bottom right"];
console.log(grid[2 + (1 * 3)]);
// → bottom right
function Grid(width, height) {
this.space = new Array(width * height);
this.width = width;
this.height = height;
}
Grid.prototype.isInside = function(vector) {
return vector.x >= 0 && vector.x < this.width &&
vector.y >= 0 && vector.y < this.height;
};
Grid.prototype.get = function(vector) {
return this.space[vector.x + this.width * vector.y];
};
Grid.prototype.set = function(vector, value) {
this.space[vector.x + this.width * vector.y] = value;
};
var grid = new Grid(5, 5);
console.log(grid.get(new Vector(1, 1)));
// → undefined
grid.set(new Vector(1, 1), "X");
console.log(grid.get(new Vector(1, 1)));
// → X
var directions = {
"n": new Vector( 0, -1),
"ne": new Vector( 1, -1),
"e": new Vector( 1, 0),
"se": new Vector( 1, 1),
"s": new Vector( 0, 1),
"sw": new Vector(-1, 1),
"w": new Vector(-1, 0),
"nw": new Vector(-1, -1)
};
function randomElement(array) {
return array[Math.floor(Math.random() * array.length)];
}
function BouncingCritter() {
this.direction = randomElement(Object.keys(directions));
};
BouncingCritter.prototype.act = function(view) {
if (view.look(this.direction) != " ")
this.direction = view.find(" ") || "s";
return {type: "move", direction: this.direction};
};
function elementFromChar(legend, ch) {
if (ch == " ")
return null;
var element = new legend[ch]();
element.originChar = ch;
return element;
}
function World(map, legend) {
var grid = new Grid(map[0].length, map.length);
this.grid = grid;
this.legend = legend;
map.forEach(function(line, y) {
for (var x = 0; x < line.length; x++)
grid.set(new Vector(x, y),
elementFromChar(legend, line[x]));
});
}
function charFromElement(element) {
if (element == null)
return " ";
else
return element.originChar;
}
World.prototype.toString = function() {
var output = "";
for (var y = 0; y < this.grid.height; y++) {
for (var x = 0; x < this.grid.width; x++) {
var element = this.grid.get(new Vector(x, y));
output += charFromElement(element);
}
output += "\n";
}
return output;
};
var world = new World(plan, {"#": Wall, "o": BouncingCritter});
console.log(world.toString());
// → ############################
// # # # o ##
// # #
// # ##### #
// ## # # ## #
// ### ## # #
// # ### # #
// # #### #
// # ## o #
// # o # o ### #
// # # #
// ############################
var test = {
prop: 10,
addPropTo: function(array) {
return array.map(function(elt) {
return this.prop + elt;
}.bind(this));
}
};
console.log(test.addPropTo([5]));
// → [15]
var test = {
prop: 10,
addPropTo: function(array) {
return array.map(function(elt) {
return this.prop + elt;
}, this); // ← без bind
}
};
console.log(test.addPropTo([5]));
// → [15]
Grid.prototype.forEach = function(f, context) {
for (var y = 0; y < this.height; y++) {
for (var x = 0; x < this.width; x++) {
var value = this.space[x + y * this.width];
if (value != null)
f.call(context, value, new Vector(x, y));
}
}
};
World.prototype.turn = function() {
var acted = [];
this.grid.forEach(function(critter, vector) {
if (critter.act && acted.indexOf(critter) == -1) {
acted.push(critter);
this.letAct(critter, vector);
}
}, this);
};
World.prototype.letAct = function(critter, vector) {
var action = critter.act(new View(this, vector));
if (action && action.type == "move") {
var dest = this.checkDestination(action, vector);
if (dest && this.grid.get(dest) == null) {
this.grid.set(vector, null);
this.grid.set(dest, critter);
}
}
};
World.prototype.checkDestination = function(action, vector) {
if (directions.hasOwnProperty(action.direction)) {
var dest = vector.plus(directions[action.direction]);
if (this.grid.isInside(dest))
return dest;
}
};
function View(world, vector) {
this.world = world;
this.vector = vector;
}
View.prototype.look = function(dir) {
var target = this.vector.plus(directions[dir]);
if (this.world.grid.isInside(target))
return charFromElement(this.world.grid.get(target));
else
return "#";
};
View.prototype.findAll = function(ch) {
var found = [];
for (var dir in directions)
if (this.look(dir) == ch)
found.push(dir);
return found;
};
View.prototype.find = function(ch) {
var found = this.findAll(ch);
if (found.length == 0) return null;
return randomElement(found);
};
for (var i = 0; i < 5; i++) {
world.turn();
console.log(world.toString());
}
// → … пять ходов
animateWorld(world);
// → … заработало
Как это подключить к html? Продолбался пол дня!
вставлял яваскрипт сразу в html используя
и скрипт не работал,
я всю голову изломал почему,
а заработал когда заменил на
Здравствуйте!
Просьба помочь в решении такой задачи.
1. В отдельном файле word.js созданы и прописаны массивы:
[/js]
Каким образом практически реализовать сценарий для получения значения каждого элемента в этих массивах с использованием этой информации в другом файле script.js.
Функции в одном файле, а информация для обработки (массивы) - в другом. Всё в одной папке и на одном РС.
============================
2. Имеются элементы, связанные между собой логикой работы в функциональные группы:
-------------------------
id0; name = word1
-------------------------
word1;
talk1;
audio.src = 'media/file1.mp3';
img.src = 'images/file1.png';
video.src = 'video/file1.mp4;
----------------------------
----------------------------
id1; name = word2
----------------------------
word2;
talk2;
audio.src = 'media/file2.mp3';
img.src = 'images/file2.png';
video.src = 'video/file2.mp4;
-----------------------------
Таких групп "n".
Надо организовать для них новые взаимно связанные массивы [word], [talk], [ audio], [img], [video] соответственно, для последующей записи нужных значений элементов.
Каким образом практически организовать сценарий синхронного внесения в эти массивы новых элементов с "нуля", чтобы у них были одинаковые индексы, соответствующие номеру/имени группы, используя форму HTML.
Каким образом можно будет получать и использовать данные по этим массивам, как отдельно по значению элементов, так и списки значений элементов, выбранных по id/name группы.
С возможностью использовать для обработки информацию по каждому элементу в т.ч. обратившись к id группы.
Дополнительно - с выводом информации и записью в отдельный файл report.
Всё в одной папке и на одном РС.
Ту часть работы, которая связана с HTML я выполнил, частично и по JS функциям. Споткнулся на формировании массивов, подключению JS функций и обработке их данных.
----------------------------
PS. Готовлю тестовую программу для внучки (3-й класс).
С возможностью её (программы) развития по мере взросления тестуемой.
HTML более-менее. JS - help!
Решая практическую задачу, пытаюсь освоить JS.
Как подключится к базу данных из javascript
Подскажите пожалуйста какой JS скрипт код выводит на этом сайте в правом нижнем углу иконку (Telegram) служба поддержки. и можно ли мне его установить на другой сайт без установки плагина для WordPress? Спасибо.