Как загрузить javascript динамически с помощью jquery? [Дубликат]

Это трудно сделать при просмотре MAC, поскольку он не имеет доступа к функциям Windows, которые могут помочь очистить экран. Мое лучшее исправление заключается в цикле и добавлении строк до тех пор, пока терминал не станет ясным, а затем запустите программу. Однако это не так эффективно или полезно для памяти, если вы используете это прежде всего и часто.

  void clearScreen () {int clear = 5;  do {cout & lt;  епсИ;  clear - = 1;  } while (clear! = 0);  }  
138
задан Cole Johnson 11 April 2014 в 23:01
поделиться

22 ответа

Техника, которую мы используем на работе, - это запросить файл javascript, используя запрос AJAX, а затем eval () return. Если вы используете библиотеку прототипов, они поддерживают эту функцию в своем вызове Ajax.Request.

2
ответ дан 17 of 26 17 August 2018 в 10:25
поделиться

Существуют сценарии, специально разработанные для этой цели.

yepnope.js встроен в Modernizr, а lab.js - это больше оптимизированная (но менее удобная для пользователя версия.

Я бы не рекомендовал делать это через большую библиотеку, такую ​​как jquery или прототип, потому что одним из основных преимуществ загрузчика сценариев является возможность загрузки скриптов раньше - вы не нужно ждать, пока jquery & amp; все ваши элементы dom загрузятся до запуска проверки, чтобы увидеть, хотите ли вы динамически загружать скрипт.

1
ответ дан 1nfiniti 17 August 2018 в 10:25
поделиться

Вот пример кода, который я нашел ... у кого-то есть лучший способ?

  function include(url)
  {
    var s = document.createElement("script");
    s.setAttribute("type", "text/javascript");
    s.setAttribute("src", url);
    var nodes = document.getElementsByTagName("*");
    var node = nodes[nodes.length -1].parentNode;
    node.appendChild(s);
  }
8
ответ дан Adam 17 August 2018 в 10:25
поделиться
  • 1
    Что я могу сделать, чтобы заставить его работать в кросс-домене? (загрузка скрипта из http://web.archive.org/web/20140905044059/http://www.howtocreate.co.uk/operaStu‌​ff/userjs/aagmfunctions.js) – user2284570 14 September 2014 в 03:32

Я потерялся во всех этих образцах, но сегодня мне нужно было загрузить внешний .js из моего основного .js, и я сделал это:

document.write("<script src='https://www.google.com/recaptcha/api.js'></script>");
0
ответ дан adrianTNT 17 August 2018 в 10:25
поделиться

Существует новый предложенный стандарт ECMA под названием dynamic import , недавно включенный в Chrome и Safari.

const moduleSpecifier = './dir/someModule.js';

import(moduleSpecifier)
   .then(someModule => someModule.foo()); // executes foo method in someModule
0
ответ дан Alister Norris 17 August 2018 в 10:25
поделиться

Я знаю, что мой ответ немного запоздал для этого вопроса, но вот замечательная статья на www.html5rocks.com - Глубокое погружение в мутные воды загрузки скрипта .

В этой статье делается вывод о том, что в отношении поддержки браузера лучший способ динамически загружать файл JavaScript без блокировки рендеринга содержимого выглядит следующим образом:

Учитывая, что у вас есть четыре сценария с именем script1.js, script2.js, script3.js, script4.js, тогда вы можете сделать это с помощью async = false:

[
  'script1.js',
  'script2.js',
  'script3.js',
  'script4.js'
].forEach(function(src) {
  var script = document.createElement('script');
  script.src = src;
  script.async = false;
  document.head.appendChild(script);
});

Теперь Spec говорит: загрузите вместе, выполните в порядке, как только все будет загружено.

Firefox & lt; 3.6, Opera говорит: я понятия не имею, что это за «асинхронная» вещь, но так бывает, я выполняю скрипты, добавленные через JS, в том порядке, в котором они добавлены.

Safari 5.0 говорит: «Я понимаю», async ", но не понимают, что он устанавливает значение" false "с помощью JS. Я буду выполнять ваши скрипты, как только они приземлятся, в любом порядке.

IE & lt; 10 говорит: «Не знаю, как« асинхронно », но есть обходной путь с использованием« onreadystatechange ».

Все остальное говорит:« Я твой друг, мы сделаем это по книге ».

Теперь полный код с IE & lt; 10:

var scripts = [
  'script1.js',
  'script2.js',
  'script3.js',
  'script4.js'
];
var src;
var script;
var pendingScripts = [];
var firstScript = document.scripts[0];

// Watch scripts load in IE
function stateChange() {
  // Execute as many scripts in order as we can
  var pendingScript;
  while (pendingScripts[0] && pendingScripts[0].readyState == 'loaded') {
    pendingScript = pendingScripts.shift();
    // avoid future loading events from this script (eg, if src changes)
    pendingScript.onreadystatechange = null;
    // can't just appendChild, old IE bug if element isn't closed
    firstScript.parentNode.insertBefore(pendingScript, firstScript);
  }
}

// loop through our script urls
while (src = scripts.shift()) {
  if ('async' in firstScript) { // modern browsers
    script = document.createElement('script');
    script.async = false;
    script.src = src;
    document.head.appendChild(script);
  }
  else if (firstScript.readyState) { // IE<10
    // create a script and add it to our todo pile
    script = document.createElement('script');
    pendingScripts.push(script);
    // listen for state changes
    script.onreadystatechange = stateChange;
    // must set src AFTER adding onreadystatechange listener
    // else we’ll miss the loaded event for cached scripts
    script.src = src;
  }
  else { // fall back to defer
    document.write('<script src="' + src + '" defer></'+'script>');
  }
}

Несколько трюков и миниатюр позже, это 362 байта

!function(e,t,r){function n(){for(;d[0]&&"loaded"==d[0][f];)c=d.shift(),c[o]=!i.parentNode.insertBefore(c,i)}for(var s,a,c,d=[],i=e.scripts[0],o="onreadystatechange",f="readyState";s=r.shift();)a=e.createElement(t),"async"in i?(a.async=!1,e.head.appendChild(a)):i[f]?(d.push(a),a[o]=n):e.write("<"+t+' src="'+s+'" defer></'+t+">"),a.src=s}(document,"script",[
  "//other-domain.com/1.js",
  "2.js"
])
0
ответ дан asmmahmud 17 August 2018 в 10:25
поделиться

Недавно я использовал гораздо менее сложную версию с jQuery :

<script src="scripts/jquery.js"></script>
<script>
  var js = ["scripts/jquery.dimensions.js", "scripts/shadedborder.js", "scripts/jqmodal.js", "scripts/main.js"];
  var $head = $("head");
  for (var i = 0; i < js.length; i++) {
    $head.append("<script src=\"" + js[i] + "\"></scr" + "ipt>");
  }
</script>

Он отлично работал в каждом браузере, в котором я тестировал его: IE6 / 7, Firefox, Safari, Opera.

Обновление: версия jQuery-less:

<script>
  var js = ["scripts/jquery.dimensions.js", "scripts/shadedborder.js", "scripts/jqmodal.js", "scripts/main.js"];
  for (var i = 0, l = js.length; i < l; i++) {
    document.getElementsByTagName("head")[0].innerHTML += ("<script src=\"" + js[i] + "\"></scr" + "ipt>");
  }
</script>
24
ответ дан Clomp 17 August 2018 в 10:25
поделиться
  • 1
    Это здорово ... если вы не пытаетесь загрузить jquery. – user 12 February 2010 в 09:58
  • 2
    Похоже, что jQuery собирается свернуться в плагин Require в jQuery Core для будущей версии: plugins.jquery.com/project/require – Adam 10 February 2011 в 17:47
  • 3
    Еще лучший способ использования jQuery - использовать $.getScript. См. Мой ответ. – Muhd 13 February 2012 в 22:39
  • 4
    Для этого подходят Modernizr (yepnope.js) или lab.js. использование тяжелой библиотеки сценариев (которая должна загружаться первой) не является наиболее подходящим ответом для мобильных или многих других ситуаций. – 1nfiniti 14 February 2012 в 16:53
  • 5
    @MaulikGangani более старые браузеры и html-валидаторы интерпретируют это как токен, чтобы закончить скрипт. – travis 15 April 2017 в 18:55

еще один удивительный ответ

$.getScript("my_lovely_script.js", function(){


   alert("Script loaded and executed.");
  // here you can use anything you defined in the loaded script

 });

https://stackoverflow.com/a/950146/671046

13
ответ дан Community 17 August 2018 в 10:25
поделиться
  • 1
    Что я могу сделать, чтобы заставить его работать в кросс-домене? (загрузка скрипта из http://web.archive.org/web/20140905044059/http://www.howtocreate.co.uk/operaStu‌​ff/userjs/aagmfunctions.js) – user2284570 14 September 2014 в 03:32

все основные библиотеки javascript, такие как jscript, prototype, YUI, поддерживают загрузку файлов сценариев. Например, в YUI после загрузки ядра вы можете сделать следующее, чтобы загрузить элемент управления календарем

var loader = new YAHOO.util.YUILoader({

    require: ['calendar'], // what components?

    base: '../../build/',//where do they live?

    //filter: "DEBUG",  //use debug versions (or apply some
                        //some other filter?

    //loadOptional: true, //load all optional dependencies?

    //onSuccess is the function that YUI Loader
    //should call when all components are successfully loaded.
    onSuccess: function() {
        //Once the YUI Calendar Control and dependencies are on
        //the page, we'll verify that our target container is 
        //available in the DOM and then instantiate a default
        //calendar into it:
        YAHOO.util.Event.onAvailable("calendar_container", function() {
            var myCal = new YAHOO.widget.Calendar("mycal_id", "calendar_container");
            myCal.render();
        })
     },

    // should a failure occur, the onFailure function will be executed
    onFailure: function(o) {
        alert("error: " + YAHOO.lang.dump(o));
    }

 });

// Calculate the dependency and insert the required scripts and css resources
// into the document
loader.insert();
0
ответ дан Darren Kopp 17 August 2018 в 10:25
поделиться

Здесь является простой с обратным вызовом и поддержкой IE:

function loadScript(url, callback) {

    var script = document.createElement("script")
    script.type = "text/javascript";

    if (script.readyState) { //IE
        script.onreadystatechange = function () {
            if (script.readyState == "loaded" || script.readyState == "complete") {
                script.onreadystatechange = null;
                callback();
            }
        };
    } else { //Others
        script.onload = function () {
            callback();
        };
    }

    script.src = url;
    document.getElementsByTagName("head")[0].appendChild(script);
}

loadScript("https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function () {

     //jQuery loaded
     console.log('jquery loaded');

});
1
ответ дан Jacob 17 August 2018 в 10:25
поделиться

Что-то вроде этого ...

<script>
     $(document).ready(function() {
          $('body').append('<script src="https://maps.googleapis.com/maps/api/js?key=KEY&libraries=places&callback=getCurrentPickupLocation" async defer><\/script>');
     });
</script>
0
ответ дан James Arnold 17 August 2018 в 10:25
поделиться

jquery разрешил это для меня с помощью функции .append () - использовал это, чтобы загрузить полный пакет jquery ui

/*
 * FILENAME : project.library.js
 * USAGE    : loads any javascript library
 */
    var dirPath = "../js/";
    var library = ["functions.js","swfobject.js","jquery.jeditable.mini.js","jquery-ui-1.8.8.custom.min.js","ui/jquery.ui.core.min.js","ui/jquery.ui.widget.min.js","ui/jquery.ui.position.min.js","ui/jquery.ui.button.min.js","ui/jquery.ui.mouse.min.js","ui/jquery.ui.dialog.min.js","ui/jquery.effects.core.min.js","ui/jquery.effects.blind.min.js","ui/jquery.effects.fade.min.js","ui/jquery.effects.slide.min.js","ui/jquery.effects.transfer.min.js"];

    for(var script in library){
        $('head').append('<script type="text/javascript" src="' + dirPath + library[script] + '"></script>');
    }

To Use - в начале вашего html / php / etc после вас import jquery.js, вы просто включили бы этот один файл, чтобы он загрузился во всей библиотеке, добавив его в голову ...

<script type="text/javascript" src="project.library.js"></script>
2
ответ дан JM Design 17 August 2018 в 10:25
поделиться

Вот простой пример для загрузки JS-файлов. Соответствующие точки:

  • вам не нужен jQuery, поэтому вы можете использовать это для загрузки файла jQuery.js
  • , асинхронно с обратным вызовом
  • он гарантирует, что он загружается только один раз, поскольку он хранит оболочку с записью загруженных URL-адресов, что позволяет избежать использования сети
  • вопреки jQuery $.ajax или $.getScript, вы можете использовать nonces, решая таким образом, проблемы с CSP unsafe-inline. Просто используйте свойство script.nonce
var getScriptOnce = function() {

    var scriptArray = []; //array of urls (closure)

    //function to defer loading of script
    return function (url, callback){
        //the array doesn't have such url
        if (scriptArray.indexOf(url) === -1){

            var script=document.createElement('script');
            script.src=url;
            var head=document.getElementsByTagName('head')[0],
                done=false;

            script.onload=script.onreadystatechange = function(){
                if ( !done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete') ) {
                    done=true;
                    if (typeof callback === 'function') {
                        callback();
                    }
                    script.onload = script.onreadystatechange = null;
                    head.removeChild(script);

                    scriptArray.push(url);
                }
            };

            head.appendChild(script);
        }
    };
}();

Теперь вы используете его просто через

getScriptOnce("url_of_your_JS_file.js");
0
ответ дан João Pimentel Ferreira 17 August 2018 в 10:25
поделиться

У кого-нибудь есть лучший способ?

Я думаю, что просто добавить сценарий в тело было бы проще, а затем добавить его к последнему узлу на странице. Как насчет этого:

function include(url) {
  var s = document.createElement("script");
  s.setAttribute("type", "text/javascript");
  s.setAttribute("src", url);
  document.body.appendChild(s);
}
3
ответ дан Joseph Pecoraro 17 August 2018 в 10:25
поделиться
  • 1
    Что я могу сделать, чтобы заставить его работать в кросс-домене? (загрузка скрипта из http://web.archive.org/web/20140905044059/http://www.howtocreate.co.uk/operaStu‌​ff/userjs/aagmfunctions.js) – user2284570 14 September 2014 в 03:34

Просто узнал о замечательной функции в YUI 3 (на момент написания, доступной в предварительном выпуске). Вы можете легко вставлять зависимости в библиотеки YUI и «внешние» модули (что вы ищете) без особого кода: YUI Loader .

Он также отвечает на ваш второй вопрос относительно функция, вызываемая, как только загружается внешний модуль.

Пример:

YUI({
    modules: {
        'simple': {
            fullpath: "http://example.com/public/js/simple.js"
        },
        'complicated': {
            fullpath: "http://example.com/public/js/complicated.js"
            requires: ['simple']  // <-- dependency to 'simple' module
        }
    },
    timeout: 10000
}).use('complicated', function(Y, result) {
    // called as soon as 'complicated' is loaded
    if (!result.success) {
        // loading failed, or timeout
        handleError(result.msg);
    } else {
        // call a function that needs 'complicated'
        doSomethingComplicated(...);
    }
});

Отлично работает для меня и имеет преимущество управления зависимостями. Обратитесь к документации YUI для примера с календарем YUI 2 .

3
ответ дан Kariem 17 August 2018 в 10:25
поделиться
  • 1
    Вероятно, это идеальный вариант, за исключением того, что YUI является неприлично большим для этой функции. – Muhd 13 February 2012 в 22:06

В javascript нет импорта / include / require, но есть два основных способа достижения того, что вы хотите:

1 - Вы можете загрузить его с помощью вызова AJAX, а затем использовать eval.

Это самый простой способ, но он ограничен вашим доменом из-за настроек безопасности Javascript, и использование eval открывает дверь для ошибок и хаков.

2 - Добавьте тег сценария с URL сценария в HTML.

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

Оба этих решения обсуждаются и проиллюстрированы здесь.

Теперь есть большой вопрос, о котором вы должны знать. Это означает, что вы дистанционно загружаете код.

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

EG: my_lovely_script.js содержит MySuperObject

var js = document.createElement("script");

js.type = "text/javascript";
js.src = jsFilePath;

document.body.appendChild(js);

var s = new MySuperObject();

Error : MySuperObject is undefined

Затем вы перезагружаете страницу нажатием F5 , И это работает! Смущает ...

Итак, что с этим делать?

Ну, вы можете использовать взломанный автор, предлагаемый в ссылке, которую я вам дал. Итак, для людей, которые спешат, он использует en event для запуска функции обратного вызова при загрузке сценария. Таким образом, вы можете поместить весь код с помощью удаленной библиотеки в функцию обратного вызова. EG:

function loadScript(url, callback)
{
    // adding the script tag to the head as suggested before
   var head = document.getElementsByTagName('head')[0];
   var script = document.createElement('script');
   script.type = 'text/javascript';
   script.src = url;

   // then bind the event to the callback function 
   // there are several events for cross browser compatibility
   script.onreadystatechange = callback;
   script.onload = callback;

   // fire the loading
   head.appendChild(script);
}

Затем вы пишете код, который хотите использовать ПОСЛЕ того, как скрипт загружается в лямбда-функцию:

var myPrettyCode = function() {
    // here, do what ever you want
};

Затем вы запускаете все это:

loadScript("my_lovely_script.js", myPrettyCode);

Хорошо, я понял. Но это боль, чтобы написать все это.

Ну, в этом случае вы можете использовать как всегда фантастическую бесплатную фреймворк jQuery, которая позволяет делать то же самое в одной строке:

$.getScript("my_lovely_script.js", function() {
    alert("Script loaded and executed.");
    // here you can use anything you defined in the loaded script
});
45
ответ дан Milap 17 August 2018 в 10:25
поделиться
  • 1
    Что я могу сделать, чтобы заставить его работать в кросс-домене? (загрузка скрипта из http://web.archive.org/web/20140905044059/http://www.howtocreate.co.uk/operaStu‌​ff/userjs/aagmfunctions.js) – user2284570 14 September 2014 в 03:28
  • 2
    не может поверить, как недооценил этот ответ. Спасибо. – naftalimich 12 July 2015 в 05:11
  • 3
    Готов поспорить, это потому, что люди не любят читать за первой строкой, если только они не обещают им, что они будут богаты, если они «просто последуют этим трем секретным шагам к успеху». – Costa 31 July 2016 в 12:07
  • 4
    – Ciasto piekarz 21 January 2017 в 11:29
  • 5
    @Ciastopiekarz: Я не контролирую web.archive.org. – user2284570 21 January 2017 в 20:31
  • 6
    – Akash Singh 12 April 2017 в 07:11
  • 7
    Затем вам нужно очистить данные, которые вы хотите получить, используя какую-либо другую программу и предоставить ее себе – David Nathan 3 December 2017 в 14:21

Если у вас уже загружен jQuery, вы должны использовать $. getScript .

Это имеет преимущество перед другими ответами здесь, поскольку у вас есть встроенная функция обратного вызова (чтобы гарантировать загрузку скрипта до запуска зависимого кода), и вы можете контролировать кеширование.

6
ответ дан Muhd 17 August 2018 в 10:25
поделиться

Я использовал еще одно решение, которое я нашел в сети ... этот находится под creativecommons, и он проверяет, был ли источник включен до вызова функции ...

вы можете найти файл здесь: include.js

/** include - including .js files from JS - bfults@gmail.com - 2005-02-09
 ** Code licensed under Creative Commons Attribution-ShareAlike License 
 ** http://creativecommons.org/licenses/by-sa/2.0/
 **/              
var hIncludes = null;
function include(sURI)
{   
  if (document.getElementsByTagName)
  {   
    if (!hIncludes)
    {
      hIncludes = {}; 
      var cScripts = document.getElementsByTagName("script");
      for (var i=0,len=cScripts.length; i < len; i++)
        if (cScripts[i].src) hIncludes[cScripts[i].src] = true;
    }
    if (!hIncludes[sURI])
    {
      var oNew = document.createElement("script");
      oNew.type = "text/javascript";
      oNew.src = sURI;
      hIncludes[sURI]=true;
      document.getElementsByTagName("head")[0].appendChild(oNew);
    }
  }   
} 
3
ответ дан Pierre Spring 17 August 2018 в 10:25
поделиться
  • 1
    Что я могу сделать, чтобы заставить его работать в кросс-домене? (загрузка скрипта из http://web.archive.org/web/20140905044059/http://www.howtocreate.co.uk/operaStu‌​ff/userjs/aagmfunctions.js) – user2284570 14 September 2014 в 03:33

Я делал в основном то же самое, что и Адам, но с небольшими изменениями, чтобы убедиться, что я добавляю к главному тегу, чтобы выполнить работу. Я просто создал функцию include (код ниже) для обработки как файлов сценариев, так и css.

Эта функция также проверяет, чтобы файл сценария или CSS еще не был загружен динамически. Он не проверяет значения, закодированные вручную, и, возможно, был лучший способ сделать это, но он служил цели.

function include( url, type ){
    // First make sure it hasn't been loaded by something else.
    if( Array.contains( includedFile, url ) )
        return;

    // Determine the MIME-type
    var jsExpr = new RegExp( "js$", "i" );
    var cssExpr = new RegExp( "css$", "i" );
    if( type == null )
        if( jsExpr.test( url ) )
            type = 'text/javascript';
        else if( cssExpr.test( url ) )
            type = 'text/css';

    // Create the appropriate element.
    var tag = null;
    switch( type ){
        case 'text/javascript' :
            tag = document.createElement( 'script' );
            tag.type = type;
            tag.src = url;
            break;
        case 'text/css' :
            tag = document.createElement( 'link' );
            tag.rel = 'stylesheet';
            tag.type = type;
            tag.href = url;
            break;
    }

    // Insert it to the <head> and the array to ensure it is not
    // loaded again.
    document.getElementsByTagName("head")[0].appendChild( tag );
    Array.add( includedFile, url );
}
18
ответ дан Prisoner ZERO 17 August 2018 в 10:25
поделиться
  • 1
    includeFile не определен. – user 12 February 2010 в 09:58
  • 2
    Я не боюсь, что у меня нет никаких советов. Приведенный выше код работает как есть, он был вытащен непосредственно из работающего проекта. – palehorse 12 February 2010 в 16:30
  • 3
    -1 Код не запускается. – Muhd 11 February 2012 в 04:04
  • 4
    @palehorse, Майк и Мудд, правы, это может сработать в вашем проекте, но это потому, что "includedFile" и "Массив" переменные должны быть определены в другом месте вашего проекта, этот код сам по себе не будет работать, возможно, лучше отредактировать его, чтобы он мог работать вне контекста вашего проекта или, по крайней мере, добавлять комментарий, объясняющий, что представляют собой эти неопределенные переменные ( тип и т.д.) – user280109 23 October 2014 в 11:21

Если вы хотите загрузить скрипт SYNC, вам нужно добавить текст скрипта непосредственно в HTML HEAD-тег. Добавление этого параметра приведет к загрузке ASYNC. Чтобы синхронно загружать текст сценария из внешнего файла, используйте XHR. Ниже быстрого примера (в этом и других сообщениях используются части других ответов):

/*sample requires an additional method for array prototype:*/

if (Array.prototype.contains === undefined) {
Array.prototype.contains = function (obj) {
    var i = this.length;
    while (i--) { if (this[i] === obj) return true; }
    return false;
};
};

/*define object that will wrap our logic*/
var ScriptLoader = {
LoadedFiles: [],

LoadFile: function (url) {
    var self = this;
    if (this.LoadedFiles.contains(url)) return;

    var xhr = new XMLHttpRequest();
    xhr.onload = function () {
        if (xhr.readyState === 4) {
            if (xhr.status === 200) {
                self.LoadedFiles.push(url);
                self.AddScript(xhr.responseText);
            } else {
                if (console) console.error(xhr.statusText);
            }
        }
    };
    xhr.open("GET", url, false);/*last parameter defines if call is async or not*/
    xhr.send(null);
},

AddScript: function (code) {
    var oNew = document.createElement("script");
    oNew.type = "text/javascript";
    oNew.textContent = code;
    document.getElementsByTagName("head")[0].appendChild(oNew);
}
};

/*Load script file. ScriptLoader will check if you try to load a file that has already been loaded (this check might be better, but I'm lazy).*/

ScriptLoader.LoadFile("Scripts/jquery-2.0.1.min.js");
ScriptLoader.LoadFile("Scripts/jquery-2.0.1.min.js");
/*this will be executed right after upper lines. It requires jquery to execute. It requires a HTML input with id "tb1"*/
$(function () { alert($('#tb1').val()); });
3
ответ дан Sielu 17 August 2018 в 10:25
поделиться
1
ответ дан stamat 17 August 2018 в 10:25
поделиться

Держите это красивым, коротким, простым и удобным! :]

// 3rd party plugins / script (don't forget the full path is necessary)
var FULL_PATH = '', s =
[
    FULL_PATH + 'plugins/script.js'      // Script example
    FULL_PATH + 'plugins/jquery.1.2.js', // jQuery Library 
    FULL_PATH + 'plugins/crypto-js/hmac-sha1.js',      // CryptoJS
    FULL_PATH + 'plugins/crypto-js/enc-base64-min.js'  // CryptoJS
];

function load(url)
{
    var ajax = new XMLHttpRequest();
    ajax.open('GET', url, false);
    ajax.onreadystatechange = function ()
    {
        var script = ajax.response || ajax.responseText;
        if (ajax.readyState === 4)
        {
            switch(ajax.status)
            {
                case 200:
                    eval.apply( window, [script] );
                    console.log("library loaded: ", url);
                    break;
                default:
                    console.log("ERROR: library not loaded: ", url);
            }
        }
    };
    ajax.send(null);
}

 // initialize a single load 
load('plugins/script.js');

// initialize a full load of scripts
if (s.length > 0)
{
    for (i = 0; i < s.length; i++)
    {
        load(s[i]);
    }
}

Этот код является просто небольшим функциональным примером, который мог бы потребовать дополнительных функциональных возможностей для полной поддержки на любой (или заданной) платформе.

2
ответ дан tfont 17 August 2018 в 10:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: