所以我有一个有趣的问题。我在引用其他Javascript文件之前声明了一个全局变量,但该变量似乎并未实现。也许我错过了某个步骤?通过回调函数传递全局Javascript变量到其他JS文件
该变量是一个字符串,它是上载文件的,像这样的内容:
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像这样。内容被记录以确保我抓住了正确的事情。 loadScript
然后允许应用程序代码的其余部分开始运行。我需要我的程序等待用户指定一个文件,然后才能继续,并且我对AngularJS有一些奇怪的怪癖,所以以这种方式运行它是我能想到的唯一解决方法。 }
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);
;:
的loadscript
内容
total.js
开始这行代码,最终导致输出:
var csv=window.text;
一切正常。输出看起来应该是......保存为空。含义window.text不能正确拉取。
这是否是由于回调,它并没有完全通过?我该如何解决这个问题?
编辑: 从我的回调函数根本没有运行在所有的,我已经想通了,所以它不是通过传递变量的问题。但是,PHPglue的输入仍然有效。谢谢。
也许与这个问题有关? http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call – elclanrs
是window.text总是空的?或者在getText函数中?或者在文件total.js中?或者在回调中? – dievardump