• Как сделать плавную прокрутку страницы до якоря?

    Sergeniy
    @Sergeniy
    $(function(){
    
    $('.some_link').on('click', function(e){
    	$('html,body').stop().animate({ scrollTop: $('#some_point').offset().top }, 1000);
    	e.preventDefault();
    });
    
    });
    Ответ написан
    7 комментариев
  • Как передать значение переменной из php-скрипта в javascript?

    nowm
    @nowm
    Первый способ: Отдельный AJAX-запрос к PHP-файлу, который вернёт что-нибудь вроде JSON-данных, которые потом будут доступны из JS.

    Второй способ: В PHP-файле можно определить какую нибудь переменную во время генерации страницы, а потом из любых скриптов к ней обращаться. Например так:

    PHP-файл:
    <?php
    $a = 'text for js_variable';
    ?>
    <!DOCTYPE html>
    <html>
      <head>
        <script>
          //Определяется переменная, которая будет доступна для 
          // всех JavaScript, подключаемых на данной странице
          var js_variable = '<?php echo $a; ?>';
        </script>
        <!-- 
          В файле /scripts/myscript.js происходит обращение 
          к переменной js_variable 
        -->
        <script src="/scripts/myscript.js"></script>
      </head>
      <body>blah-blah-blah</body>
    </html>


    Файл /scripts/myscript.js:
    // Выскочит алерт с текстом «text for js_variable».
    alert(js_variable);


    Вот. В HEAD-части HTML-страницы вы определяете переменную, которая будет доступна для остального JS-кода. Главное — нужно её определять до того, как будут подключены скрипты, которые будут её использовать.

    Третий способ: Если ваш web-сервер — Apache, то можно добавить в .htaccess в корне сайта такие строки:
    AddType application/x-httpd-php .js
    AddHandler x-httpd-php5 .js
    
    <FilesMatch "\.js$">
    SetHandler application/x-httpd-php
    </FilesMatch>


    Тогда вы сможете прямо в JS-файлах выполнять PHP-код. Но выполняться он будет только в тех JS-файлах, которые находятся в папке с сайтом. Если будут загружаться скрипты со сторонних ресурсов, там PHP-код работать не будет.
    Ответ написан
    Комментировать
  • Чем отличаются Javascript и ECMAscript?

    xanep
    @xanep
    Что было сначала — курица или яйцо? :)
    Чтоб понимать как соотносятся Javascript и ECMAscript, нужно окунуться немного в историю. Javascript был создан как скриптовый язык для Netscape. Майкрософт создал свой скриптовый язык для IE, который назывался JScript. Естественно использовать 2 языка для разных браузеров было не кошерно и Netscape инициировало стандартизацию, в результате чего родился стандарт языка ECMAscript. ECMAscript не привязан к браузерам, сам по себе не имеет средств ввода/вывода. Последующие версии языков Javascript и JScript были приведены в соответствие стандарту ECMAscript. На основе этого стандарта также был создан ActionScript.
    В итоге сегодня Javascript состоит из 3-х практически отдельных частей
    — Ядро (полностью соответствует стандарту ECMAscript),
    — Document Object model (DOM)
    — Browser Object Model (BOM)
    DOM — это API для достука к HTML. Его спецификацию вы можете найти на сайте W3C. BOM в каждом браузере реализован по своему. Соответственно вы найдете спецификацию Javascript от Mozilla (как наследницы Netscape) на их сайте. Отдельно можете почитать спецификации ECMAscript и DOM.
    В итоге получается, что изначально стандарт ECMAscript был основан на Javascript, а потом Javascript основан на ECMAscript. Вот так запутанно :)
    Ну а приставка Java — это маркетинговый ход. Java была очень на слуху в 90-х, поэтому и выбрали такое название. Точнее даже переименовали язык из LiveScript в Javascript.
    Ответ написан
    1 комментарий