Ответы пользователя по тегу JavaScript
  • Системный скролл не работает в IE в компе, но работает в демо на GitHub. В чем причина?

    somenumboola
    @somenumboola
    Team Lead in B-online Solutions
    Предположу. Если открываете страницу не через локальный HTTP сервер, а просто как файл (ссылка начинается file:///C:/...) то в этом случае IE блокирует javascript сценарии страницы из соображений безопасности. Ранее это регулировалось подтверждением запроса при открытии страницы, как сейчас не знаю.
    Ответ написан
    1 комментарий
  • Как перехватить ответ из дочерней вкладки, находясь в родительской?

    somenumboola
    @somenumboola
    Team Lead in B-online Solutions
    Ну вообще когда окно открыто через
    window.open();
    из него к инициатору открытия можно обратится через
    window.opener.document
    По крайней мере именно так делали за не имением html5 хранилища.
    Далее дело техники. Кастомный ивент на окне родителя. И его вызов в дочернем окне:
    Родительское окно (псевдокод, требует отладки)
    window.addEventListener('childWinResponse',function(e){
          console.log(e.detail.name);
    });

    Дочернее окно:
    var childWinResponse = new CustomEvent('childWinResponse',{
           'detail' : {
                 name : 'Derfirm'
           }
    }
    window.opener.dispatchEvent(childWinResponse);


    UPD: Более того Webkit браузеры устанавливают opener даже для окон открытых через
    <a href="... ." target="_blank">... .</a>

    javascript.ru/window.opener
    javascript.ru/forum/dom-window/13283-vernut-ehleme...
    www.codeproject.com/Articles/25388/Accessing-paren...
    Ответ написан
    Комментировать
  • Как реализован toster, raindrop, hantim?

    somenumboola
    @somenumboola
    Team Lead in B-online Solutions
    Насчет PHP в Habrahabr и Тостере - правда. Стоит плагин который никогда еще не ошибался и он четко показывает что пыха. Можно проверить по спец инструкциям которые вшиты в exe интерпретатора и при запросе отображают лого PHP но очень лень лезть. И даже один из друзей когда-то специально компилировал из исходников чтобы от него избавится.

    Благодаря замечанию @Stmol обратил внимание что на Brainstorage плагин действительно молчит.

    Хабрахабр и Livestreet
    Вот с клонами не совсем так как сказал @VitaZheltyakov. Когда-то читал ряд публикаций на тему истории создания хабра. Так вот история Хабра и история LiveStreet невероятно переплетается. Помню что чтение напомнило какой-то испанский сериал. Кто-то куда-то уходил, кто-то куда-то возвращался. Одно ясно помню, что руки разработчиков хабры участвовали в разработке этого движка, посему не клон а скорее копия мастера. И тут даже остается открытым вопрос, что было раньше.
    Вообще вопрос "Каким образом сделана такая тесная интеграция javascript с сервером, я понимаю, что ajax, но реализация?" очень общий и размытый но...
    Современная разработка насчитывает массу методов предварительного проектирования ПО. Именно они при последовательной и продуманной разработке ПО позволяют реализовать эту интеграцию оптимальной с точки зрения нагрузки на сервер и количества кода.

    Если интересно заглянуть "под капот", возьмите IDE которая форматирует код (PhpStorm например) и заставьте ее отформатировать код. Она его разложит по полочкам.
    Реально ли самому написать идентичный сервис?

    Если вы имеете в виду собрать и возглавить команду из нескольких человек, то да более чем. Если же имеете в виду "соло на клавитуре", то с очень большими трудностями, и по соотношению КПД на отрезок времени который придется посидеть абсолютно не оправданно. Кроме того Тостер это не только разрабы. Это дизайнеры, контент редакторы, когорта профессиональных журналистов, маркетологов для разработки стратегии (и самой компании ТМ в частности) которые знают и как подать, продать и как раскрутить. Это то о чем стоит помнить.
    Ответ написан
    2 комментария
  • Как запретить отправку формы, если цикл вернул false?

    somenumboola
    @somenumboola
    Team Lead in B-online Solutions
    Я лично не совсем понял как у вас отрабатывает представленный пример. Есть два способа повесить хендлер на событие.
    Первый, проприетарный :
    jQuery('form').on('submit',function(e){
         e.preventDefault(); //Отменили нативное действие
         (e.cancelBubble) ? e.cancelBubble : e.stopPropagation; //Погасили всплытие
    }

    И второй, через алиас:
    jQuery('form').submit(function(){
    return false; //Отменили нативное действие
    });

    А у вас что-то среднее получилось.
    Кроме того почему не сделать так:
    jQuery('form').on('submit',function(e){
        var flag = true, 
            inputs = jQuery('input:not([type="submit"])',this); // Вторым аргументом указываем где искать
        inputs.each(function(){
            if(jQuery(this).val() == ''){
                flag = false;
            }
        });
        if(flag){
              /* Ajax запрос */
            alert('Запрос!');
         } else {
            alert('Заполни меня!!!');
         }
         e.preventDefault(); //Отменили нативное действие
         (e.cancelBubble) ? e.cancelBubble : e.stopPropagation; //Погасили всплытие
    });

    Рабочий пример
    Ответ написан
    5 комментариев