Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.05.2010, 12:37
Аватар для Gozar
बोधिसत्त
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 3,606

ЧаВО - часто задаваемые вопросы (faq)
Поддержка возобновлена!

В теме собраны часто задаваемые вопросы и ответы на них.
Просьба обсуждать только поправки и вопросы для внесения в ЧаВО.
Этот пост будет редактироваться по мере правок и дополнений.


1. Не могу получить доступ к содержимому iframe?
Ответ:
- если у iframe и страницы с которой вызывается iframe разные домены или протоколы или порты
(пр: site.ru, iframesite.ru; site.ru:80, site.ru:8080; http://site.ru, https://site.ru), то доступ друг к другу они получить не могут(same origin policy) подробнее ...

1.1 доступ из iframe
доступ из фрейма к окну содержащему этот фрейм осуществляется через свойство parent, т.е. если хотим получить досуп к переменной var a = 10; из фрейма, то делаем это так: var b = parent.a;

1.2 доступ к iframe
function getIDoc(e) {
       return (e.contentDocument) ? e.contentDocument : (e.contentWindow) ? e.contentWindow.document : e.document;
}
var iHTML = getIDoc(document.getElementById(id)).body.innerHTML;

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

2. С чего начать изучение javascript?
Ответ:
- вы уже начали, учебный материал тут и тут - книги и их обсуждение, javascript паттерны (Переведена на русский!)
- MDC (Mozilla Developer Center) - информация по Firefox
- MSDN (Microsoft Developer Network) - информация по Internet Explorer
- Opera
- Javascript by Dmitry Soshnikov

3. Как смотреть ошибки?
Ответ:
- Поставить Firebug для Firefox
- Подробно для разных браузеров читать тут

4. Как отправить письмо на e-mail, файл по ftp, узнать ip пользователя и т.д. ?
Ответ:

phpсервер(ПО)браузерjs

(основная ошибка путается сервер и клиент, а также кто за что отвечает)

в php есть функции для работы с e-mail, в php есть функции для работы с ftp. в PHP есть переменная в которой храниться ip компьютера(не обязательно пользователя) который отправляет запрос на сервер($_SERVER['REMOTE_ADDR'] подробнее ...), php может записывать информацию в файлы на сервере, php не единственный язык умеющий делать вышеперечисленное (пр: Perl).

js(javascript) это не браузер. Браузер помимо js может использовать другие языки(java, xul, html, xml, actionscript, ...) и технологии (обеспечивающие например запись файлов на HDD пользователя). Возможность использования того или другого зависит от настроек браузера пользователя. Браузер обеспечивает работу js с другими яз. и технологиями.

js это клиентский язык и он взаимодействует с браузером.
php это серверный язык и он взаимодействует с сервером.


уточнение (существует ещё "серверный js" и "клиентский php" )

5. Что использовать JSON или XML?
Ответ:
JSON занимает меньше места при передаче и к тому же он "родной" для js (JSON - JavaScript Object Notation), а значит легче получать доступ к данным. Лёгкость работы, краткость записи, легкость чтения человеком - главные преимущества. (про xml и ajax)

6. Как программно раскрыть select?
Ответ:
никак!
в js нет такого события чтобы раскрывать select - есть выделение option, но оно не раскрывает список(select).
Почему его нет? - потому что оно не нужно, создатели браузеров посчитали что мультфильмы рисовать можно и без визуального раскрытия select Используйте вместо этого например input и скрытый/показанный div.

7. Как понять ООП js? (прототипы)
Ответ:
запастись терпением и прочитать следующее, по ссылкам:
1. ООП наследование by Илья Кантор
2. ООП by Dmitry Soshnikov
2.1. Ядро by Dmitry Soshnikov
3. Наследование by Zeroglif
Читать можно в любом порядке, но желательно прочитать все три ссылки, для большего понимания происходящего.
Обсуждение классического наследования (читать по желанию)
Обсуждение (читать по желанию)
Рассуждения на тему зла и добра

Схема:
Гы раз (http://www.mollypages.org/misc/jsobj.jpg)
Гы два (http://egachine.berlios.de/embedding...-ecma-base.png)
Гы три by x-yuri (наиболее удачная) совместно с ней смотреть 7.2.1(схема внутри статьи)

8. Почему 0.2+0.1 == 0.30000000000000004 (0.1 * 3 == 0.30000000000000004 и т.д.) ?
Ответ:
Не любит математиков
Все числа в JS хранятся в формате с плавающей точкой. В этом формате не всегда возможны точные вычисления. Для округления вычислений до нужного знака после запятой используйте метод toFixed.
(0.2+0.1).toFixed(1); // 0.3


9. Что означает выражение (function(){...})() или (function () { ... }()) ?
Это создание анонимной ф-ции и её немедленный вызов. Для большего понимания происходящего прочтите следующие статьи:
- Функции
- Замыкания

(function(){ alert(10); })() //10

Функция будет немедленно выполнена после создания и выведет окно с текстом 10.

10. Разработка javascript с HTML5(gui) приложений для windows 8.

Документация от microsoft

Для тех кто в танке, для написания полноценного приложения вам придется выучить WinJS для общения с системой.

Последний раз редактировалось Gozar, 20.03.2012 в 10:37.
Ответить с цитированием
  #2 (permalink)  
Старый 18.04.2011, 19:05
Аватар для melky
4xuya
Отправить личное сообщение для melky Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 2,956

КАК ИСПОЛЬЗОВАТЬ МЕТКИ ?

синтаксис :

Код:
метка: инструкция

break метка
// или
continue метка
получается, что переход к меткам можно делать только в циклах ( for, while ) или ветвления ( switch ) ???

я не могу никак понять этого, в инете примеров нету

вот пример из Флэнагана
outerloop:
for(var i = 0; i < 10; i++) {
innerloop:
for(var j = 0; j < 10; j++) {
if (j > 3) break; // Выход из самого внутреннего цикла
if (i == 2) break innerloop; // То же самое
if (i == 4) break outerloop; // Выход из внешнего цикла
document.write("i = " + i + " j = " + j + "<br>");
}
}
document.write("FINAL i = " + i + " j = " + j + "<br>");


у меня так не получается

как сделать переход по меткам без использования циклов ( и switch ) ?
__________________
"Лучшее" ―
враг
"хорошего".
В JavaScript нет нерешимых задач.
Ответить с цитированием
  #3 (permalink)  
Старый 19.04.2011, 12:30
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,013

Сообщение от melky
получается, что переход к меткам можно делать только в циклах ( for, while ) или ветвления ( switch ) ???
да, потому что в js нету goto
Ответить с цитированием
  #4 (permalink)  
Старый 20.04.2011, 01:02
Аватар для FINoM
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 1,507

Сообщение от x-yuri
да, потому что в js нету goto
Ура
Ответить с цитированием
  #5 (permalink)  
Старый 20.04.2011, 06:15
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,013

Сообщение от FINoM
Ура
зато есть сотня других способов прострелить себе ногу. Да и goto можно сэмулировать
try {
  ...
  throw new Exception('goto label');
  ...
} catch(e){}
// label:
Ответить с цитированием
  #6 (permalink)  
Старый 11.07.2011, 00:21
Аспирант
Отправить личное сообщение для ILL-JAH Посмотреть профиль Найти все сообщения от ILL-JAH
 
Регистрация: 24.03.2011
Сообщений: 36

IE отказывается переваривать нестандартные названия событий. Я правильно понимаю?
Ответить с цитированием
  #7 (permalink)  
Старый 11.07.2011, 01:40
Аватар для trikadin
Не профессор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 2,694

Нет, неправильно.
__________________
Ничему в этом мире не помешает хорошая доля юмора. А ты любопытный)

Только ситхи возводят всё в абсолют)
Ответить с цитированием
  #8 (permalink)  
Старый 11.07.2011, 11:21
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 720

да, правильно
__________________
.ня
Ответить с цитированием
  #9 (permalink)  
Старый 11.07.2011, 11:47
Аватар для trikadin
Не профессор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 2,694

Нестандартные... Извините) Поздно было, голова не думала...
__________________
Ничему в этом мире не помешает хорошая доля юмора. А ты любопытный)

Только ситхи возводят всё в абсолют)
Ответить с цитированием
  #10 (permalink)  
Старый 01.09.2011, 17:45
Аспирант
Отправить личное сообщение для max00077 Посмотреть профиль Найти все сообщения от max00077
 
Регистрация: 28.07.2011
Сообщений: 41

привет всем. Встретил В коде Такие имена форм
<ul id="frmLogin:pnlLogin2
" как ето понять? что значит двоеточие? где об таких методах можна почитать? спасиба!!!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы Gozar Сайт Javascript.ru 2 23.05.2010 01:27