将jquery插件加载到特定的命名空间

时间:2011-12-06 11:15:09

标签: javascript jquery labjs

我正在考虑通过加载器加载jquery和一系列插件,即labjs或yepnope.js。

我想将jquery插件加载到自定义的jquery命名空间中,如果可能的话,不需要修改它们。

任何想法如何加载这些插件而不必通过有效地添加(mynamespace.Jquery) 来修改它们?

1 个答案:

答案 0 :(得分:1)

如何将它们加载到命名空间中非常容易:

(function(jQuery) {

-- Plugin code here

})(mynamespace.jQuery);

你问题的第二部分有点困难。假设您的插件位于http://www.mysite.com/javascript/jquery.fancybox.js

的服务器上

你将不得不提供插件。您将不得不以某种方式在所需的命名空间中动态包装插件。

php中的快速伪代码答案:

  1. 示例请求将是 http://www.mysite.com/plugin.php?script=jquery.fancybox&namespace=mynamespace
  2. 在plugin.php中,从中读取JS文件内容 $ _REQUEST ['script'] param
  3. 在包装器中输出文件内容,例如
  4. (function(jQuery){

    < ?= $ scriptFileContents?>

    })(<?= $ _REQUEST ['namespace']?> .jQuery);

    显然你将逃避输入参数以禁止XSS攻击,对吗?