Задать вопрос
Ответы пользователя по тегу JavaScript
  • Нужен ли веб-разработчикам сервис случайных данных?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ответ написан
    Комментировать
  • Symbian и мобильное приложение на HTML/CSS/JS?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Пишите вот лучше на MidletPascal - толку будет больше. На обычных трубках - можно будет пользоваться приложением: forum.boolean.name/forumdisplay.php?f=46
    Язык: Pascal (не забыли со школы?!)
    Ответ написан
    Комментировать
  • Как сделать такую анимацию на странице?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Предполагаю, использовать css анимацию, для постепенной отрисовки вот такой вот фигуры
    Это всё равно, что попробовать слетать на Луну в картонной коробке!

    Только SVG, Canvas или WebGL (думаю до этого не должно дойти..)
    Ответ написан
    Комментировать
  • Как сделать кнопку читать далее?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Целых три варианта:
    1. DIV+CSS: overflow: hidden (по клику - убираем свойство hidden через JS)
    2. Jquery: api.jquery.com/load (грузим с сервера динамически)
    3. NewPage (делаем переход на полную версию публикации)
    Ответ написан
    1 комментарий
  • Как сделать скриншот с помощью JavaScript?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    мне нужно заскриншотить img без изменения и выложить на этой же странице
    что мешает по событию onload взять копию объекта и отобразить в другом img на этой же странице?
    Ответ написан
    Комментировать
  • Как расшифровать файл javascript?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    /** @type {Array} */
    var _0x6e0a = ["random", "floor", "\n", "URL GOTO=http://ad-social.org/in/earn?soc=in&type=like", "SET !TIMEOUT_STEP 0", "TAG POS=1 TYPE=A ATTR=CLASS:openTask<SP>btn&&ONCLICK:openTask*;&&HREF:javascript:;", "WAIT SECONDS=5", 'SEARCH SOURCE=TXT:"404 Not Found"', "TAB CLOSE", 'SEARCH SOURCE=TXT:"\u0417\u0430\u043a\u0430\u0437 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d... \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043e\u043d \u0443\u0436\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d, \u043b\u0438\u0431\u043e \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d \u0438\u0437-\u0437\u0430 \u043d\u0430\u0440\u0443\u0448\u0435\u043d\u0438\u0439, \u043b\u0438\u0431\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0438\u043c\u0435\u043d\u043d\u043e \u0412\u0430\u043c\u0438. "',
        "ONDIALOG POS=1 BUTTON=OK CONTENT=", "WAIT SECONDS=1", "TAG POS=1 TYPE=A ATTR=CLASS:skip-task-btn&&HREF:javascript:;", "WAIT SECONDS=2", "SET !TIMEOUT_STEP 15", 'SEARCH SOURCE=TXT:"\u00a9 2016 Instagram"', 'SEARCH SOURCE=TXT:"\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0434\u0430\u043d\u043d\u0430\u044f \u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430."', "TAG POS=1 TYPE=A ATTR=TXT:\u041d\u0440\u0430\u0432\u0438\u0442\u0441\u044f",
        "WAIT SECONDS=", "URL GOTO=http://ad-social.org/in/earn?soc=in&type=follower", "TAG POS=1 TYPE=BUTTON ATTR=TXT:\u041f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f"
    ];
    /**
     * @param {number} opt_attributes
     * @param {number} expectedNumberOfNonCommentArgs
     * @return {?}
     */
    function getRandomInRange(opt_attributes, expectedNumberOfNonCommentArgs) {
        return Math[_0x6e0a[1]](Math[_0x6e0a[0]]() * (expectedNumberOfNonCommentArgs - opt_attributes + 1)) + opt_attributes;
    }
    var n = _0x6e0a[2];
    for (;;) {
        iimPlayCode(_0x6e0a[3]);
        /** @type {number} */
        i = 0;
        for (; i < 6; i++) {
            e = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[5]);
            if (e < 0) {
                iimPlayCode(_0x6e0a[6]);
                break;
            }
            z0 = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[7]);
            if (z0 > 0) {
                iimPlayCode(_0x6e0a[8]);
                iimPlayCode(_0x6e0a[3]);
            }
            z = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[9]);
            if (z > 0) {
                iimPlayCode(_0x6e0a[8]);
                iimPlayCode(_0x6e0a[10] + n + _0x6e0a[11] + n + _0x6e0a[12] + n + _0x6e0a[13]);
                iimPlayCode(_0x6e0a[3]);
            } else {
                iimPlayCode(_0x6e0a[14] + n + _0x6e0a[15]);
                z1 = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[16]);
                if (z1 > 0) {
                    iimPlayCode(_0x6e0a[8]);
                    iimPlayCode(_0x6e0a[10] + n + _0x6e0a[11] + n + _0x6e0a[12] + n + _0x6e0a[13]);
                    iimPlayCode(_0x6e0a[3]);
                }
                iimPlayCode(_0x6e0a[4] + n + _0x6e0a[17]);
                iimPlayCode(_0x6e0a[18] + getRandomInRange(3, 5));
                iimPlayCode(_0x6e0a[8]);
                iimPlayCode(_0x6e0a[18] + getRandomInRange(15, 20));
                iimPlayCode(_0x6e0a[3]);
            }
        }
        iimPlayCode(_0x6e0a[19]);
        /** @type {number} */
        i = 0;
        for (; i < 6; i++) {
            e = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[5]);
            if (e < 0) {
                iimPlayCode(_0x6e0a[13]);
                break;
            }
            z0 = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[7]);
            if (z0 > 0) {
                iimPlayCode(_0x6e0a[8]);
                iimPlayCode(_0x6e0a[19]);
            }
            z = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[9]);
            if (z > 0) {
                iimPlayCode(_0x6e0a[8]);
                iimPlayCode(_0x6e0a[10] + n + _0x6e0a[11] + n + _0x6e0a[12] + n + _0x6e0a[13]);
                iimPlayCode(_0x6e0a[19]);
            } else {
                iimPlayCode(_0x6e0a[14] + n + _0x6e0a[15]);
                z1 = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[16]);
                if (z1 > 0) {
                    iimPlayCode(_0x6e0a[8]);
                    iimPlayCode(_0x6e0a[10] + n + _0x6e0a[11] + n + _0x6e0a[12] + n + _0x6e0a[13]);
                    iimPlayCode(_0x6e0a[19]);
                }
                iimPlayCode(_0x6e0a[4] + n + _0x6e0a[20]);
                iimPlayCode(_0x6e0a[18] + getRandomInRange(3, 5));
                iimPlayCode(_0x6e0a[8]);
                iimPlayCode(_0x6e0a[18] + getRandomInRange(15, 20));
                iimPlayCode(_0x6e0a[19]);
            }
        }
    };
    Ответ написан
  • Как отследить изменение содержимого объекта подгружаемого с помощью ajax?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    А что мешает триггер повесить в complete ?
    или вызвать нужную функцию внутри секции complete?
    Ответ написан
    Комментировать
  • Какую прикрутить корзину к сайту?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    При клике - аяксите запрос к любой корзине и все (добавляйте в серверную переменную сессии (массив) - ID-товара).
    А по "Оформить" - вызывайте саму (любую) корзину и процесс оформления.
    Можно написать и вручную - это не сложно.
    Ответ написан
    Комментировать
  • Каковы перспективы HTML5-игры на мобильных устройствах?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Скажу кратко и понятно для всех: будет игра приносить удовольствие -> она играбельна!
    Ответ написан
    3 комментария
  • Как найти на странице сайта область с полезным контентом?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    ну, если кратко: это задача поиска ОСНОВНОГО контента страницы.
    1. Удаляем все контейнеры (кроме тэгов разметки текста), с количеством дочерних элементов превышающих 1.
    2. Чистим контейнер body от всех тегов, кроме тегов-контейнеров (div,td)
    3. Находим контейнер (div,td) с самым длинным текстом.
    4. Смело его грабим.

    Пример.
    Было:
    <div1>
      <div2>
       <a href="/1/">link1</a>
       <a href="/2/">link2</a>
      </div>
      <div3>
        <span contetnt>
             some text
          <p>
            <i>more text</i>
           </p>
        </span contetnt>
      </div3>
    </div1>

    Стало:
    <div3>
      some text
      more text
    </div3>
    Ответ написан
  • Мобильная разработка приложений: Java или JavaScript?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ядро - пишем на Java, пользовательский интерфейс взаимодействия между ядром и пользователем - на JS.
    Решение универсально тем, что позволяет:
    1. Более гибко и быстро менять внешний вид, используя привычную HTML/CSS/JS вёрстку.
    2. Выносить какие-либо функции, при том не трогая сам рабочий код внутри
    3. Над таким приложением могут работать сразу 2 человека: JAVA(back-end) и вёрстка+JS (front-end)
    4. Общение между JS-клиентом и JAVA-кодом происходит через локальный интерфейс через вебсокет, что предотвращает любые задержки.
    5. Всегда можно переделать клиента на любом другом языке
    6. Еще как бонус - можно интерфейс запустить на ПК (или еще где-то), а подключаться и управлять он будет приложением, запущенном на смартфоне в фоновом режиме (в виде демона).
    7. Один интерфейс может управлять сразу несколькими устройствами и доступ к одному устройству могут получить сразу несколько клиентов.
    Ответ написан
    Комментировать
  • Как запустить кусок кода js из php?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    "Выполнить нажатие" или "не раскрывать нужный кусок"?
    Можно прописать переменную состояния контейнера в JS скрипте (JS):
    var expanded=<?=if($_SESSION['nextView'])?"false":"true"?>;

    А ниже (ПОСЛЕ ПРОВЕРКИ!)- задать переменную (в PHP):
    if(!isset($_SESSION['nextView']))$_SESSION['nextView']=true;

    В итоге, первый раз - переменной$_SESSION['nextView'] не будет и в JS переменная expanded=true
    А при следующем вызове - $_SESSION['nextView']=true и expanded=false.
    Ответ написан
    7 комментариев
  • Динамические тайтлы. Плохо или Хорошо?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    В НИЖНИЙ НОВГОРОДЕ
    я есть говорить по-русски!)))
    Простой ответ: гугл и яндекс выполняют JS только при кэшировании у себя в базе. Соответственно, из всего списка в поиске будет только какая-то одна строка.
    Этот вариант - бесполезен для поисковой выдачи, но полезен для пользователей, если Вы меняете не тайтл, а текст на странице, который видит пользователь, т.к. это увеличивает конверсию.
    Для ПС: если меняете title, меняйте также линк и текст.
    Если текст остаётся прежний - нужно использовать канонический тэг, для указания оригинальной ссылки на материал.
    Ответ написан
    1 комментарий
  • Как правильно разработать CRM-систему с нуля с архитектурной точки зрения?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Прежде, чем выбирать "на чём", нужно понимать "как"!
    Нужны зависимости ролей и их различных параметров между собой.
    Т.е. схема взаимодействия потоков бизнес-объектов и потом - схема базы данных (на её основе).
    Каналы, компании, клиенты, активности, линки, переходы и т.д. вот всё это - объектные роли.
    Ответ написан
    Комментировать
  • Как передать строку в заведомо неизвестной кодировке из php в javascript?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    но как оказалось, корректный результат после декодирования можно получить только со строкой в utf-8
    значит кодировку страницы документа нужно установить в utf-8 и строку кодировать в utf-8 на серверной стороне.
    Есть ступенчатый алгоритм (я не буду тут приводить, слишком долго писать), но лучше выставлять кодировку на основе явно-указанных данных (теги и заголовки страницы, если вы - парсите и т.д.).
    Ответ написан
  • Можно ли накрутить яндекс метрику?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Подскажите пожалуйста реально ли это все вообще, а главное в какую сторону мне копать?

    Накрутить - реально, накрутить без последствий - реально, но опасно.
    1. Есть средневзвешенная статистика заходов на сайты данной тематики по странам.
    2. Есть тенденция вашего домена, которая не должна выходить за рамки тенденций того же сегмента сайтов (страна, время существования домена на этой тематике, время года и т.д.)
    Любой выход по значениям из среднестатистического кластера по любому из пунктов - это бан домена.
    Думайте)
    Ответ написан
    Комментировать
  • Какой шаблон использовать для связки компонентов интерфейса на чистом JavaScript?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Фасад-Медиатор: largescalejs.ru
    Ответ написан
    Комментировать
  • Как хранить сессию в мобильном приложении?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Не важно на чем Вы пишите и как (PHP, rest/не-rest и т.д.): схема - везде одна.

    Про сессию:
    1. Сервер создаёт идентификатор сессии и всегда указывает его при ответе на каждый запрос клиента.
    2. Клиент использует этот идентификатор (обычно хранит в куках браузера) при каждом последующем запросе.
    3. Если сервер в ответе указал НОВЫЙ идентификатор сессии, клиент - должен использовать новый.

    Про токен:
    Токен объединяет в себе авторизацию и сессию с помощью операции хэширования.
    1. После получения идентификатора сессии от сервера, клиент отправляет хешированную информацию на основе логина, пароля и полученного идентификатора.
    2. Сервер проверяет и, если всё верно, выдаёт токен для последующих запросов.
    3. Для защиты от восстановления формулы хэширования на основе одинаковых данных, используется полиморфизм: добавляется параметр random и timestamp к передаваемым параметрам.
    4. Для защиты уникальности - на стороне сервера предусматривается суточное хранение всех запросов на основе токена.

    Токен может быть как постоянным, так и одноразовым.
    1. Постоянный - когда при каждом запросе к серверу он не меняется.
    2. Одноразовый - когда после каждого запроса к серверу, сервер выдаёт новый токен.
    Ответ написан
    2 комментария