首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用插件创建jQuery插件

使用插件创建jQuery插件
EN

Stack Overflow用户
提问于 2013-05-13 00:32:30
回答 2查看 102关注 0票数 0

我正在试着做一个tinymce类型的编辑器。我希望它可以像tinymce一样通过插件进行扩展。我的问题是,如何在我的插件中加载和使用外部javascript文件?

EN

回答 2

Stack Overflow用户

发布于 2013-05-13 00:45:39

您可以创建一个新的脚本标记来拉入javascript文件:

代码语言:javascript
复制
YourEditor.loadPlugin = function(url) {
   var scriptElement = document.createElement('script');

   scriptElement.src = url;

   document.body.appendChild(scriptElement);
};

如果加载的javascript被封装在调用中以向编辑器注册自身:

代码语言:javascript
复制
YourEditor.registerPlugin("some-plugin", function(YourEditor) {

   /* plugin code */

});

在您的核心代码中,您将声明一个函数:

代码语言:javascript
复制
YourEditor.registerPlugin = function(name, loadFunction) {
   loadFunction (this);

   // fire an event (dummy syntax)
   this.fire('pluginLoaded', name);
};

然后,你可以在YourEditor外触发一个事件,让编辑器的用户知道插件'some- plugin‘已经加载了。

注册插件的工作方式与jsonp类似,因为它允许您根据共享函数的知识从任意来源加载代码。它传递了一个名称和一个要调用的函数,这些函数将设置插件运行所需的一切。

票数 2
EN

Stack Overflow用户

发布于 2013-05-13 01:32:27

以下是我决定做的事情:

使用jQuery.getScript()函数。甚至不知道它的存在。

下面是我的代码:

代码语言:javascript
复制
loadplugins: function() {
        var self = this;
        var settings = self.settings;       
        var plugins = settings.plugins.split(/[\s,]+/);
        var thispath = settings.script_url;

        $.each(plugins, function(i,e) {
            // add .js to the plugin and the path before it
            var thisPlugin = thispath + settings.plugin_dir + e + '.js'; // I'll change this to work with a script or directory

            $.getScript(thisPlugin, function(data, textStatus, jqxhr) {

                console.log(data, textStatus, jqxhr);

                self.registerPlugin(data, function() {

                });
            });

        });

        return true;
    },
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16509594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档