Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.08.2014, 16:52
Интересующийся
Отправить личное сообщение для new_developer Посмотреть профиль Найти все сообщения от new_developer
 
Регистрация: 25.07.2014
Сообщений: 28

Элементарный вопрос
if (!handler.guid) {


когда знак возклицания в условие ставится это имеется ввиду что не равно = 0, undefined , null ? правильно понимаю

и ещё логику этого условие разшифруйте))

if (elem.setInterval && ( elem != window && !elem.frameElement ) ) {

как я его вижу : елементу задается setInterval и этот элемент не равен window , а чему он может быть равен?)) и элемент не фрайм.
Ответить с цитированием
  #2 (permalink)  
Старый 09.08.2014, 17:01
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

1.
! - отрицание.
if(!a) -> if(a == false)

2. скорее всего elem должен быть window, но раз не текущим и не фрейма, то результатом window.open()
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 09.08.2014, 17:05
Интересующийся
Отправить личное сообщение для new_developer Посмотреть профиль Найти все сообщения от new_developer
 
Регистрация: 25.07.2014
Сообщений: 28

Aetae,
а что значит результатом window.open()?
Ответить с цитированием
  #4 (permalink)  
Старый 09.08.2014, 17:21
Интересующийся
Отправить личное сообщение для new_developer Посмотреть профиль Найти все сообщения от new_developer
 
Регистрация: 25.07.2014
Сообщений: 28

Rise,

кароче просто не понимаю этого выражения != window где потрогать можно этот чисто window ?
Ответить с цитированием
  #5 (permalink)  
Старый 09.08.2014, 17:59
Интересующийся
Отправить личное сообщение для new_developer Посмотреть профиль Найти все сообщения от new_developer
 
Регистрация: 25.07.2014
Сообщений: 28

Rise,
я как-раз этим и занимаюсь )
Ответить с цитированием
  #6 (permalink)  
Старый 09.08.2014, 18:43
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

if в JavaScript - это языковая конструкция которая выполняет определенные действия если соблюдаются условия
Условия задаются с помощью «()» круглых скобок
Любые операции заданные в этих круглых скобках приводятся к логическому значению истина (true) или лож (false)
Если условие заданное в скобках истинное (true) то выполняется блок кода заключенный в «{}» фигурные скобки

В условии используются логические операторы &&, !, !=, ....
логические операторы возвращают логическое значение т.е. возвращают true или false в зависимости от условий
условия задаются слева от оператора и справа
т.е. (elem.setInterval && ( elem != window && !elem.frameElement ) ) это выражение с несколькими логическими операторами

по шагам
1. (elem.setInterval && ( elem != window && !elem.frameElement ) )
2. ( true && ( elem != window && !elem.frameElement ) )
3. ( true && ( elem != window && !elem.frameElement ) )
4. ( true && ( true && !elem.frameElement ) )
5. (true && ( true && !false) )
6. (true && ( true && true )
7. ( true && true )
8. ( true )

elem.setInterval - приводится к истине если у переменной "elem" есть свойство или метод "setInterval"
elem != window - приводится к истине если переменная "elem" не равна переменной window
!elem.frameElement - приводится к истине если у переменной "elem" нет свойства или метода "frameElement"
Ответить с цитированием
  #7 (permalink)  
Старый 09.08.2014, 19:01
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Сообщение от MallSerg Посмотреть сообщение
!elem.frameElement - приводится к истине если у переменной "elem" нет свойства или метода "frameElement"
Не совсем.
!elem.frameElement - приводится к истине если у переменной "elem" нет свойства или метода "frameElement", или оно == false.
elem = {frameElement:0};
alert(!elem.frameElement)
alert('frameElement' in elem)
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 09.08.2014, 19:05
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Пояснение к тому что я имел ввиду изначально:
<script>
  var elem = window;
  alert([ ' Normal window:',
    'elem.setInterval:\t\t' + !!elem.setInterval,
    'elem != window:\t\t' + (elem != window),
    '!elem.frameElement:\t' + !elem.frameElement,
    (elem.setInterval && ( elem != window && !elem.frameElement ) ) 
  ].join('\n'))
</script>
<input type="button" onclick="
  var elem = window.open('about:blank');
  alert([ ' New window:',
    'elem.setInterval:\t\t' + !!elem.setInterval,
    'elem != window:\t\t' + (elem != window),
    '!elem.frameElement:\t' + !elem.frameElement,
    (elem.setInterval && ( elem != window && !elem.frameElement ) ) 
  ].join('\n'))
" value="click me">
<iframe src="about:blank" onload="
  var elem = this.contentWindow;
  alert([ ' Frame window:',
    'elem.setInterval:\t\t' + !!elem.setInterval,
    'elem != window:\t\t' + (elem != window),
    '!elem.frameElement:\t' + !elem.frameElement,
    (elem.setInterval && ( elem != window && !elem.frameElement ) ) 
  ].join('\n'))
" style="position:absolute;top:-800px;">
__________________
29375, 35

Последний раз редактировалось Aetae, 09.08.2014 в 19:17.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос по toDataURL() GodZiLA Общие вопросы Javascript 0 03.06.2014 17:21
Всплытие событий или что то не так... Кирюха =) jQuery 6 30.03.2013 12:56
Элементарный вопрос Arpeccop Общие вопросы Javascript 5 26.08.2011 19:48
вопрос про возможности JS для рисования и анимации macdack Библиотеки/Тулкиты/Фреймворки 3 15.07.2011 00:13
Элементарный пример, вопрос от новчика LF-A Events/DOM/Window 3 29.01.2010 14:23