通过回调函数将全局Javascript变量传递给其他JS文件

通过回调函数将全局Javascript变量传递给其他JS文件,javascript,global-variables,total.js,Javascript,Global Variables,Total.js,所以我有一个有趣的问题。在引用其他Javascript文件之前,我声明了一个全局变量,但该变量似乎无法执行。也许我在某个地方错过了一步 变量是一个字符串,它是上载文件的内容,如下所示: function getText(s){ //creates a global variable that can hold the file window.text = s; console.log(window.text); }; function handl

所以我有一个有趣的问题。在引用其他Javascript文件之前,我声明了一个全局变量,但该变量似乎无法执行。也许我在某个地方错过了一步

变量是一个字符串,它是上载文件的内容,如下所示:

function getText(s){ //creates a global variable that can hold the file
        window.text = s;
        console.log(window.text);
  };     
  function handleFileSelect(event) {
    var files = event.target.files; // The file that is uploaded
      var reader = new FileReader();                 
     reader.onloadend = function(event){            
        getText(event.target.result); //pulling out the content of the file
        loadScript('total.js',function(){ //starts app code
            window.text
        });
     };      
    reader.readAsText(files[0],"UTF-8");//required to read the text        
};           
  try{
        document.getElementById('files').addEventListener('change',
         handleFileSelect, false); //listens for the uploaded file
  }    
  catch(e){
        alert(e);
  };
因此,一旦用户上传了一个文件,内容就会像这样复制到window.text中。内容被记录下来,以确保我抓到了正确的东西<代码>加载脚本然后允许应用程序代码的其余部分开始运行。我需要我的程序等待用户指定一个文件,然后它才能继续,我对AngularJS有一些奇怪的怪癖,所以以这种方式运行它是我能想到的唯一解决办法

loadscript
的内容:

function loadScript(url, callback){

var script = document.createElement("script")
script.type = "text/javascript";

script.onload = function(){
    callback();
};

script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
})

total.js
以这行代码开始,最终导致输出:

var csv=window.text;
一切正常。输出看起来应该…保存为空。意味着window.text无法正确通过

是不是因为回调的缘故,它没能一路通过?我怎样才能解决这个问题

编辑:
我发现回调函数根本就没有运行,所以这不是传递变量的问题。但PHPglue的输入仍然有效。谢谢。

而不是
window.text
,只需声明变量,我建议使用,或者不使用
var
关键字,首先声明所有代码,如:

var windowText;
function getText(s){
    windowText = s;
    console.log(windowText);
}

在JavaScript中,如果变量写在其他代码之上,除非它们的作用域在函数中,否则它们会自动向下传递。只要在函数代码中不使用
var
关键字,就可以重用
windowText

可能与此问题有关?window.text是否始终为空?还是在getText函数中?还是在total.js文件中?还是回叫?