0

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

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

知道如何通过有效地添加 (mynamespace.Jquery) 来加载这些插件而无需修改它们吗?

4

1 回答 1

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 中,从 $_REQUEST['script'] 参数中读取 JS 文件内容
  3. 在包装器中输出文件内容,例如

(函数(jQuery){

< ?= $scriptFileContents ?>

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

很明显,您将转义输入参数以不允许 XSS 攻击,对吧?

于 2012-10-31T23:04:07.763 回答