Dynamically load a JavaScript file

后端 未结 28 3379
说谎
说谎 2020-11-22 06:56

How can you reliably and dynamically load a JavaScript file? This will can be used to implement a module or component that when \'initialized\' the component will dynamical

28条回答
  •  Happy的楠姐
    2020-11-22 07:39

    Just found out about a great feature in YUI 3 (at the time of writing available in preview release). You can easily insert dependencies to YUI libraries and to "external" modules (what you are looking for) without too much code: YUI Loader.

    It also answers your second question regarding the function being called as soon as the external module is loaded.

    Example:

    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(...);
        }
    });
    

    Worked perfectly for me and has the advantage of managing dependencies. Refer to the YUI documentation for an example with YUI 2 calendar.

提交回复
热议问题