2015-08-13 7 views
2

Я использую внешний файл js на своем сайте, он в данный момент находится внизу моего шаблона.Загрузите внешний JS-файл из класса JS

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?libraries=places"></script> 

Мне нужно загрузить этот скрипт только на определенные страницы или при определенных модальных нагрузках.

Есть ли способ вызвать скрипт из моего кода javascript. Например:

$(document).one('opened.fndtn.reveal', '#my-modal[data-reveal]', function() { 
    //load places api 
}); 

Также Google предлагает иметь его на каждой странице - почему это так? Мне не нужно использовать его на каждой странице.

+2

[getScript] (https://api.jquery.com/jquery.getscript/) – epascarello

ответ

3

Вы можете использовать .getScript()

Загрузите файл JavaScript с сервера используя запрос GET HTTP, а затем выполнить его.

$.getScript("https://maps.googleapis.com/maps/api/js?libraries=places", function(){ 
    alert("script loaded"); 
}); 
0

Другой способ, если у вас нет JQuery.

function inyectScript(url, success){ 
     var script = document.createElement('script'); 
     script.src = url; 
     script.id = "myScript"; 
     var done = false; 
     script.onload = script.onreadystatechange = function() { 
      if (!done && (!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete')) { 
       done = true; 
       success(); 
       script.onload = script.onreadystatechange = null; 
      } 
     }; 
     document.getElementsByTagName('head')[0].appendChild(script); 
    } 
Смежные вопросы