javascript – getScript本地加载而不是全局?

根据我的阅读,
JQuery的getScript函数使用名为“global eval”的函数在全局上下文中加载脚本文件.是否有一个特定的设置或方法来改变它,所以它将在我调用它的函数中加载?

如果我执行以下代码名称返回undefined,因为它未在本地上下文中加载脚本.

    function callscript(){
        var name='fred';
    getScript(abc.js);
    }

//abc.js:
alert(name);

最佳答案 我相信我已经使用常规的JQuery ajax调用找到了解决方案.诀窍是你将数据类型设置为’text’,否则如果它的脚本或者使用getScript或替代.get()它将自动运行内部脚本并将其放在全局上下文中.

 function abc(){
    var msg="ciao";
    $.ajax({
      url: 'themes/_default/system/message.js',
      success: function(data){
          eval(data);
      },
      dataType: "text"
    });
    }
    //message.js
(function() {
    alert(msg);
})();

这会像预期的那样警告’ciao’:)

在任何人说什么之前我都在使用eval,但在这种情况下完全没问题.

点赞