在JS内动态加载JS

467

我有一个动态网页,在一个 IF 条件下需要在另一个 JavaScript 文件中导入外部 JS 文件。

我尝试寻找可行的解决方案,但并没有成功。

我已经尝试使用 document.createElement() 将 JS 文件加载到 DOM 中,但也没有成功。显然,JS 已经被加载到了 DOM 中,但是在当前的 JS 文件中无法访问。

使用 jQuery 解决方案也可以。


你尝试通过这样做来实现什么目的(以便可以提供替代方案)? - Stephen
我正在创建一个动态页面。它可以有条件地显示一些效果。但是外部JS不能永久地包含在HTML中。 - Riju Mahna
1
参见:http://www.jspatterns.com/the-ridiculous-case-of-adding-a-script-element/ - Dave Jarvis
12个回答

1
这是一个用于动态加载JavaScript和CSS文件的小型库:

https://github.com/todotresde/javascript-loader

我认为按顺序和动态地加载CSS和JS文件是有用的。

支持扩展以加载任何你想要的库,而不仅仅是主文件,你可以使用它来加载自定义文件。

I.E.:

<html>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="scripts/javascript-loader.js" type="text/javascript" charset="utf-8" ></script>    
    <script type="text/javascript">
        $(function() {

            registerLib("threejs", test);

            function test(){
                console.log(THREE);
            }

            registerLib("tinymce", draw);

            function draw(){
                tinymce.init({selector:'textarea'});
            }

        }); 
    </script>
</head>
<body>
    <textarea>Your content here.</textarea>
</body>

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接