Javascript 使用插件制作jQuery插件
我正在尝试制作一个tinymce类型编辑器。我希望它能像tinymce一样用插件扩展。我的问题是如何在我的插件中加载和使用外部javascript文件?您可以创建一个新的脚本标记来拉入javascript文件:Javascript 使用插件制作jQuery插件,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我正在尝试制作一个tinymce类型编辑器。我希望它能像tinymce一样用插件扩展。我的问题是如何在我的插件中加载和使用外部javascript文件?您可以创建一个新的脚本标记来拉入javascript文件: YourEditor.loadPlugin = function(url) { var scriptElement = document.createElement('script'); scriptElement.src = url; document.body.
YourEditor.loadPlugin = function(url) {
var scriptElement = document.createElement('script');
scriptElement.src = url;
document.body.appendChild(scriptElement);
};
如果加载的javascript被包装在一个调用中,以便在编辑器中注册自己:
YourEditor.registerPlugin("some-plugin", function(YourEditor) {
/* plugin code */
});
在核心代码中,您将声明一个函数:
YourEditor.registerPlugin = function(name, loadFunction) {
loadFunction (this);
// fire an event (dummy syntax)
this.fire('pluginLoaded', name);
};
然后您可以从编辑器中触发一个事件,让编辑器的用户知道插件“some plugin”已经加载
注册插件的工作方式与jsonp类似,因为它允许您根据共享函数的知识从任意来源加载代码。它传递了一个名称和一个要调用的函数,该函数将设置插件需要操作的所有内容 以下是我决定做的: 使用
jQuery.getScript()
函数。甚至不知道它的存在
这是我的代码:
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;
},
你有没有办法对注册插件部分做更多的解释?我补充了一些解释。如果你还需要帮助,请告诉我