だから私は興味深い問題を抱えています。他の 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 にコピーされます。正しいものをキャッチしたことを確認するために、内容がログに記録されます。loadScript
その後、残りのアプリ コードの実行を開始できます。プログラムを続行するには、ユーザーがファイルを指定するのを待つ必要があり、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 の入力はまだ有効です。ありがとう。