javascript - JQuery动态加载Javascript文件

标签 javascript jquery jquery-plugins tinymce lazy-loading

我有一个非常大的 javascript 文件,我只想在用户单击某个按钮时加载它。我使用 jQuery 作为我的框架。是否有内置方法或插件可以帮助我做到这一点?

更多细节: 我有一个“添加评论”按钮,它应该加载 TinyMCE javascript 文件(我已经将所有 TinyMCE 的东西归结为一个 JS 文件),然后调用 tinyMCE.init(...)。

我不想在初始页面加载时加载它,因为不是每个人都会点击“添加评论”。

我知道我可以做到:

$("#addComment").click(function(e) { document.write("<script...") });

但是有更好/封装的方式吗?

最佳答案

是的,使用 getScript而不是 document.write - 它甚至允许在文件加载后进行回调。

不过,您可能想在包含它之前检查是否定义了 TinyMCE(以便随后调用“添加评论”),因此代码可能如下所示:

$('#add_comment').click(function() {
    if(typeof TinyMCE == "undefined") {
        $.getScript('tinymce.js', function() {
            TinyMCE.init();
        });
    }
});

假设您只需要调用一次 init 就可以了。如果没有,你可以从这里弄明白:)

关于javascript - JQuery动态加载Javascript文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/912711/

相关文章:

javascript - 全局变量的值改变了,javascript

javascript - 无需重新加载页面的数组中的 PHP 随机值

JAVASCRIPTscrollLeft平滑滚动而不跳跃

javascript - 如何将这个条件逻辑转换为三元表达式?

jquery - 最好的 jQuery 深度链接/历史插件是什么?

javascript - HTML 表格多选中的交互式过滤器

javascript - SVG 线端点独立动画

javascript - 如何在 JQuery 中使用 localStorage 为 ajax 调用创建自定义缓存机制?

javascript - kendo ui 调度程序触发错误事件

javascript - 如何使 $(this) 从插件的函数参数内部访问