Ответы пользователя по тегу JavaScript
  • Как запустить javascript код в html документе?

    @mr-molodoy
    Что у Вас в game.js?
    Подключите его к странице в тег <head></head>
    Что бы получилось, что-то вроде:
    <head>
        <script src = "/javascript/game.js" type = "javascript" />
    </head>


    Это загрузит скрипт на страницу но не исполнит его. Предположим, что в этом файле есть некая функция, если же нет - создайте ее и поместите в нее содержимое файла, обратите внимание на области видимости переменных только.
    Допустим есть функция:

    function gameHandler() {
            // Код внутри функции
        }


    Далее, на странице имеем, как Вы выразились "блок", допустим такой:

    <div id = "block">
        ...
    </div>


    В таком случае нам нужно написать след. JavaScript (на самой странице):
    $('#block').on('click', gameHandler); // где gameHandler и есть название нашей функции из файла game.js


    Опираясь на ответ, думаю Вы разберетесь.
    Ответ написан
    Комментировать
  • Как превратить строку в число?

    @mr-molodoy
    Немного измените структуру шаблона.
    Приблизительно вот так:
    <div class="priceOne">
         цена за 1 мес. - <span>25</span>
    </div>

    и javascipt соответственно:
    var priceMessage  = document.getElementsByClassName("priceOne")[0];
    var priceRaw         = priceMessage.queySelector('span').innerHTML;
    var price                = parseInt(priceRaw);
    Ответ написан
    Комментировать
  • Как скачивать изображения с других сайтов?

    @mr-molodoy
    под "на клиенте" Вы подразумеваете браузер?

    Вроде бы как политика безопасности браузеров на сегодняшний день не позволит даже сделать кроссдоменный запрос и получить изображения, без специального заголовка со стороны сервера который Вы собираетесь "ограбить". Если я не ошибаюсь.

    Можно по след. схеме:
    Клиент <- Ваш сайта -> Сайт "жертва".

    Т.е:
    $.post('/getImages.php', {
         url: 'http://site.com/images/image.jpg'
    }, function (data) {
        // Сохраняем изображения
        // Правда признаюсь - это извращение ;)
    }, 'JSON');


    <?php
         $url = $_POST['url'];
         $filename = end('/', $url);
         $path = __DIR__ . '/images_cache/';
    
         file_put_contents($path . $filename, file_get_contents($url));
    
         json_encode([
              'image' => '/images_cache/' . $filename,
              'filename' => $filename
         ]);
    Ответ написан
    7 комментариев
  • Timeout ajax запроса?

    @mr-molodoy
    Можно кучей способов.

    1. Убрать обработчик с события click
      var $button = $("button#send-ajax");
      function clickHandler () {
          // Отправка Ajax
          // ...
      
          // Отключаем обработку события клика
          $button.off('click'); 
      
          // Включаем через 3 секунды
          setTimeOut(function () { $button.on('click', clickHandler); }, 3000);
      }
      
      // Включаем обработчик события
      $button.on('click', clickHandler)


    2. При нажатии проверяем переменную времени последнего клика, если времени прошло более 3-5 сек. выполняем запрос и обновляем время в переменной.
    3. По аналогии с первым примером, только спрятать кнопку на время вместо удаления обработчика
    Ответ написан
    Комментировать
  • Как упаковать в html-файл: картинки, css и js?

    @mr-molodoy
    Доброго времени суток.
    Например стили можно не подключать а разместить в тег
    <style>
    JavaScript разместить в тег
    <script>

    Изображения в качестве фона в css можно установить след. образом:
    background-image: url(data:image/gif;base64,{{base64_content}});


    Изображения на странице можно поместить так же
    <img src="data:image/gif;base64,{{base64_content}}" alt="" />


    Шрифты в css:
    @font-face {
        font-family: 'FontName';
        src: url(data:font/truetype;charset=utf-8;base64,{{base64_content}}) format('truetype'),
             url(data:font/woff;charset=utf-8;base64,{{base64_content}}) format('woff');
    }


    Где {{base64_content}} - это картинка закодированная в base64.
    Закодировать можно здесь b64.io
    Ответ написан
    Комментировать
  • Как реализовать медиазапрос на js?

    @mr-molodoy
    Не совсем ясно, что Вы имеете ввиду. Для чего Вам использовать цикл? Если Вы будете в цикле при каждой итерации проверять размер какого либо блока и плюс еще производить те или иные расчеты и / или манипуляции основываясь на этих данных, то готовьтесь к адским мучениям с производительностью.
    Как Вы сами же и упомянули в javascript имеется событие на изменение размера окна браузера. В jQuery к нему можно обратится как:
    $(window).resize(function () {
        console.log( $( window ).width() ); // Запишем в консоль новый размер
    });

    или
    $(window).on('resize', function () {
        console.log( $( window ).width() ); // Запишем в консоль новый размер
    });


    Вот Вам для примера набросал код на jsfiddle который демонстрирует всю работу.
    Красный квадрат должен изменять свой цвет на зеленый если размер окна Вы измените на 620, либо меньше пикселей в ширину и при этом поменяет свой цвет обратно, если вы увеличите ширину окна.

    Код: https://jsfiddle.net/cxnesxej/2/
    Результат в отдельном окне: https://jsfiddle.net/cxnesxej/2/embedded/result/
    Ответ написан
    3 комментария