我执行与jQuery $ .getScript一个JavaScript。 在所执行的脚本我还没有访问我的源文件的函数和变量。

是否有一个解决方案?

有帮助吗?

解决方案

由$ .getScript执行的脚本()的确实可以访问全局上下文。您可以从外部脚本中使用任何全局变量(或函数为此事)。

其他提示

尼克Craver,我只花3(!)小时沉迷在为什么我的事情是行不通的,你给我,我需要使它工作的洞察力。

XOXOXOXOXOXOXOXO

有趣的是注意到:

可以将变量声明为一个jquery VAR是这样的:

$variableName = something;

的jquery这样也具有从在任何位置范围访问它。

$(function(){ 
    $alertString = 'Hello World'; 

    $.getScript('test.js', function(){ 
        // do nothing 
    });    
} 

test.js: 

alert( $alertString ); 

我找到了答案我的题目的把握这里有帮助的,但我仍然不能使它在自己的环境中工作,直到我偶然发现的这篇文章TechMonks

当我复制/粘贴的最后一个例子为我的主要的.js的文件头这一切只是工作。至少对我来说,则$ .getScript()函数被打破,这是修复:

jQuery.extend({
 getScript: function (url, callback) {
     var head = document.getElementsByTagName("head")[0] || document.documentElement;
     var script = document.createElement("script");
     script.src = url;

     // Handle Script loading
     {
         var done = false;

         // Attach handlers for all browsers
         script.onload = script.onreadystatechange = function () {
             if (!done && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
                 done = true;
                 //success();
                 //complete();
                 if (callback) callback();

                 // Handle memory leak in IE
                 script.onload = script.onreadystatechange = null;
                 if (head && script.parentNode) {
                     head.removeChild(script);
                 }
             }
         };
     }

     head.insertBefore(script, head.firstChild);
     return undefined;
 }
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top