Задать вопрос
Ответы пользователя по тегу JavaScript
  • Как разместить в коде openapi.js от Вконтакте?

    @darkersoul Автор вопроса
    web - программист
    Не работает. Uncaught ReferenceError: VK is not defined
    1.
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8">
    </head>
    <body>
    <div id='vk_like'></div>
    <script type='text/javascript'>VK.Widgets.Like('vk_like', {type: 'button', height: 20});</script>
    <div id="vk_api_transport"></div>
    <script type="text/javascript">
        window.vkAsyncInit = function() {
            VK.init({
                apiId: 4127611
            });
        };
    
        setTimeout(function() {
            var el = document.createElement("script");
            el.type = "text/javascript";
            el.src = "//vk.com/js/api/openapi.js";
            el.async = true;
            document.getElementById("vk_api_transport").appendChild(el);
        }, 0);
    </script>
    </body>
    </html>


    2.
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8">
        <script defer async type="text/javascript" src="http://vk.com/js/api/openapi.js?105"></script>
        <script type='text/javascript'>VK.init({apiId: 4127611, onlyWidgets: true})</script>
    </head>
    <body>
    <div id='vk_like'></div>
    <script type='text/javascript'>VK.Widgets.Like('vk_like', {type: 'button', height: 20});</script>
    </body>
    </html>


    3. И этот пример не работает. Во всех примерах библа подгружается позже чем идет вызов метода счетчика из нее! И все из-за defer! Но он нужен для ускорения загрузки контента!
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="utf-8">
        <script src="http://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
        <script defer type="text/javascript" src="http://vk.com/js/api/openapi.js?105"></script>
        <script type='text/javascript'>VK.init({apiId: 4127611, onlyWidgets: true})</script>
    </head>
    <body>
    <div id='vk_like'></div>
    <script type='text/javascript'>
        $(document).ready(function(){
            VK.Widgets.Like('vk_like', {type: 'button', height: 20});
        })
    </script>
    </body>
    </html>
    Ответ написан