Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以在不修改文件的情况下将JS文件包装到func中?_Javascript_Jquery_Dojo - Fatal编程技术网

Javascript 是否可以在不修改文件的情况下将JS文件包装到func中?

Javascript 是否可以在不修改文件的情况下将JS文件包装到func中?,javascript,jquery,dojo,Javascript,Jquery,Dojo,我有一个使用Dojo、jQuery和引导的web应用程序。这个应用程序有一个.js文件的“核心”代码库,不能以任何方式修改 我试图向应用程序添加一个与jQuery的全局使用$冲突的外部服务在“核心”代码库中多次使用。有没有一种方法可以将这些核心文件包装在匿名函数中,以便在本地定义$=jQuery,而不以任何方式实际修改文件?也许是在项目中定义/包含它们的方式 我知道jquery.noConflict,但这需要我在整个“核心”中更改“$”引用。您可以将所有jquery代码包装在一个允许您在内部使用

我有一个使用Dojo、jQuery和引导的web应用程序。这个应用程序有一个.js文件的“核心”代码库,不能以任何方式修改

我试图向应用程序添加一个与jQuery的全局使用$冲突的外部服务在“核心”代码库中多次使用。有没有一种方法可以将这些核心文件包装在匿名函数中,以便在本地定义$=jQuery,而不以任何方式实际修改文件?也许是在项目中定义/包含它们的方式


我知道jquery.noConflict,但这需要我在整个“核心”中更改“$”引用。

您可以将所有jquery代码包装在一个允许您在内部使用
$
作为jquery,但也使用
noConflict()
,这样它就不会与其他库发生冲突
$

(function($){
    // all your `$` code will work fine here and won't conflict with other library `$`    

})(jQuery);

您将看到大多数使用此包装器编写的jQuery插件也是出于完全相同的原因

我以一种非常狭隘和尖锐的方式提出了我的问题。我试图实现的是在不修改文件的情况下,将新外部服务所需的.js库与现有应用程序中的.js库隔离开来

我发现,这可以通过将与新服务相关的所有内容包装在
中来实现,基本上是在现有文档中嵌入另一个具有自己名称空间的文档,以将库彼此隔离。例如,您可以在页面中添加以下内容:

<iframe>
    <script src="...">
    <script src="...">
    [do stuff with above scripts here]
</iframe>

[在此处使用上述脚本进行操作]

iframe中的全局名称空间将与父文档的名称空间分开。

是的,但我实际上无法修改“core”中的.js文件。我需要打开每个文件并附上生活中的所有东西,对吗?是的,你会的。替代方法是修改其他库以使用除
$