Javascript 包括不使用';不尊重闭包用法
我必须包含一个外部javascript文件,作为我正在处理的Drupal项目的一部分。 不幸的是,此外部文件没有正确使用闭包,例如:Javascript 包括不使用';不尊重闭包用法,javascript,jquery,drupal,closures,Javascript,Jquery,Drupal,Closures,我必须包含一个外部javascript文件,作为我正在处理的Drupal项目的一部分。 不幸的是,此外部文件没有正确使用闭包,例如: (function($) { function test() {...} })(jQuery); function test2() { console.log($('#xyz').val()); } 每当执行test2()时,都会导致“$is undefined”错误 我知道Drupal明智地使用闭包来实现库的和谐共存,这非常有用,但在这种情况下
(function($) {
function test() {...}
})(jQuery);
function test2() {
console.log($('#xyz').val());
}
每当执行test2()时,都会导致“$is undefined”错误
我知道Drupal明智地使用闭包来实现库的和谐共存,这非常有用,但在这种情况下,让负责所述外部JS文件的团队进行必要的更改将是一场噩梦(还将涉及尝试向负责的“专家”解释)
有没有什么方法可以让这个外部文件访问权限使用$作为jQuery的指针?
理想情况下,我希望有一个解决方案,它不需要在我的终端进行大量的变通,但仍然可以利用外部版本
如果做不到这一点,我只需要一个本地副本,并进行相应的修复
谢谢 只需分配一个全局变量
window.$ = jQuery
只需分配一个全局变量
window.$ = jQuery
您要么需要复制并修改它以适应,要么使用PHP获取文件并输出它,例如,如果您将javascript src指向本地PHP文件,在该PHP文件中,您可以执行以下操作
$js = file_get_contents("externaljsfile");
echo ";(function($) {";
echo $js;
echo "})(jQuery);";
我听说有一种方法,使用导入的javascript可能会工作(javascript宏?),但是我从来没有读过它们(如果它们存在的话),它们也不会;无论如何,如果没有足够多的浏览器支持成为可行的解决方案,您需要复制并修改它以适应,或者使用PHP获取文件并输出它,例如,如果您将javascript src指向本地PHP文件,在该PHP文件中,您可以执行以下操作
$js = file_get_contents("externaljsfile");
echo ";(function($) {";
echo $js;
echo "})(jQuery);";
我听说有一种方法,使用导入的javascript可能会工作(javascript宏?),但是我从来没有读过它们(如果它们存在的话),它们也不会;无论如何,我都不希望有足够多的浏览器来支持它成为一个可行的解决方案我希望它会像这样简单。谢谢我希望是这样简单的事情。谢谢很好的评论,但是。。实际上在最后使用了非常类似的东西-谢谢!很好的评论,但是。。实际上在最后使用了非常类似的东西-谢谢!