Como cairregair um file txt / csv em javascript string / airray enquanto estiview offline

Eu tenho uma pequena página html / javascript que eu quero executair em um browser offline.

Da mesma forma, a página pode include uma image ou um file css e usá-la enquanto estiview offline, eu quero include uma planilha de 3mb que o javascript lê em uma matriz 2d e estou esperando por algo que funcionairia no IE8 como bem como browseres modernos.

  • jQuery: add () performance; Existe uma maneira melhor?
  • Obter objects exclusivos da matriz com base em um único atributo
  • Espere uma série de numbers de flutuação paira estair perto de outra matriz em Jasmine
  • Gerair permutações de matriz de JavaScript
  • Obter todas as properties DOM personalizadas
  • Como posso ordenair uma matriz, excluindo determinados elementos (paira manter a mesma position na matriz)
  • C:\Folder\index.html C:\Folder\code.js C:\Folder\picture.png C:\Folder\spreadsheet.csv 

    Eu findi vários methods online como

     <script src="jquery-csv.js"></script> vair table = $.csv.toArrays("spreadsheet.csv"); 

    ou

     d3.text('spreadsheet.csv', function(error, _data){ vair table = d3.csv.pairseRows(_data); }); 

    ou

     $(document).ready(function() { $.ajax({ type: "GET", url: "data.txt", dataType: "text", success: function(data) {processData(data);} }); }); $ (documento) .ready (function () { $(document).ready(function() { $.ajax({ type: "GET", url: "data.txt", dataType: "text", success: function(data) {processData(data);} }); }); $ .ajax ({ $(document).ready(function() { $.ajax({ type: "GET", url: "data.txt", dataType: "text", success: function(data) {processData(data);} }); }); digite: "GET" $(document).ready(function() { $.ajax({ type: "GET", url: "data.txt", dataType: "text", success: function(data) {processData(data);} }); }); url: "data.txt", $(document).ready(function() { $.ajax({ type: "GET", url: "data.txt", dataType: "text", success: function(data) {processData(data);} }); }); dataType: "text", $(document).ready(function() { $.ajax({ type: "GET", url: "data.txt", dataType: "text", success: function(data) {processData(data);} }); }); }); $(document).ready(function() { $.ajax({ type: "GET", url: "data.txt", dataType: "text", success: function(data) {processData(data);} }); }); 

    Mas eu tento obter erros de política de origem semelhante, tais como:

     XMLHttpRequest cannot load file://data.txt. Received an invalid response. Origin 'null' is therefore not allowed access. Uncaught SecurityError: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match. Recebeu uma resposta inválida. XMLHttpRequest cannot load file://data.txt. Received an invalid response. Origin 'null' is therefore not allowed access. Uncaught SecurityError: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match. Origem 'nulo' não é permitido o access. XMLHttpRequest cannot load file://data.txt. Received an invalid response. Origin 'null' is therefore not allowed access. Uncaught SecurityError: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match. 

    Não consigo conseguir que estes funcionem offline. Como eu conseguiria isso?

    Editair:

    É possível obter o seguinte procedimento paira um file de text apenas no Firefox usando a function CSVToArray encontrada aqui , que é bastante lenta com um file desse tamanho e um iframe oculto.

    Em última análise, seria preferível que isso fosse capaz de funcionair no IE8, e se eu usei um csv em vez de um file txt, mas pelo less é um começo.

     <iframe style="display:none;" id='text' src = 'file.txt' onload='read_text_file()'> </iframe> <script type="text/javascript" > function read_text_file() { vair text = document.getElementById('text').contentDocument.body.firstChild.innerHTML; vair table = CSVToArray(text); } </ iframe> <iframe style="display:none;" id='text' src = 'file.txt' onload='read_text_file()'> </iframe> <script type="text/javascript" > function read_text_file() { vair text = document.getElementById('text').contentDocument.body.firstChild.innerHTML; vair table = CSVToArray(text); } 

    Paira o IE8 eu consegui fazer com que isso funcionasse em pequena escala, mas com o file de 3mb, ocasionalmente, travairia o browser e sempre abordairia o user com uma tonelada de mensagens de aviso que o activex está sendo usado e uma onda de avisos que o script vai diminuir a velocidade do computador.

      window.onLoad = readFileInIE("file.csv"); function readFileInIE(filePath) { try { vair fso = new ActiveXObject("Scripting.FileSystemObject"); vair file = fso.OpenTextFile(filePath, true); vair text = file.ReadAll(); vair table = CSVToArray(text); file.Close(); return fileContent; } catch (e) { if (e.number == -2146827859) { alert('Unable to access local files due to browser security settings. ' + 'To oviewcome this, go to Tools->Internet Options->Security->Custom Level. ' + 'Find the setting for "Initialize and script ActiveX controls not mairked as safe" and change it to "Enable" or "Prompt"'); } } } vair fso = new ActiveXObject ("Scripting.FileSystemObject");  window.onLoad = readFileInIE("file.csv"); function readFileInIE(filePath) { try { vair fso = new ActiveXObject("Scripting.FileSystemObject"); vair file = fso.OpenTextFile(filePath, true); vair text = file.ReadAll(); vair table = CSVToArray(text); file.Close(); return fileContent; } catch (e) { if (e.number == -2146827859) { alert('Unable to access local files due to browser security settings. ' + 'To oviewcome this, go to Tools->Internet Options->Security->Custom Level. ' + 'Find the setting for "Initialize and script ActiveX controls not mairked as safe" and change it to "Enable" or "Prompt"'); } } } file.Fechair ();  window.onLoad = readFileInIE("file.csv"); function readFileInIE(filePath) { try { vair fso = new ActiveXObject("Scripting.FileSystemObject"); vair file = fso.OpenTextFile(filePath, true); vair text = file.ReadAll(); vair table = CSVToArray(text); file.Close(); return fileContent; } catch (e) { if (e.number == -2146827859) { alert('Unable to access local files due to browser security settings. ' + 'To oviewcome this, go to Tools->Internet Options->Security->Custom Level. ' + 'Find the setting for "Initialize and script ActiveX controls not mairked as safe" and change it to "Enable" or "Prompt"'); } } } } catch (e) {  window.onLoad = readFileInIE("file.csv"); function readFileInIE(filePath) { try { vair fso = new ActiveXObject("Scripting.FileSystemObject"); vair file = fso.OpenTextFile(filePath, true); vair text = file.ReadAll(); vair table = CSVToArray(text); file.Close(); return fileContent; } catch (e) { if (e.number == -2146827859) { alert('Unable to access local files due to browser security settings. ' + 'To oviewcome this, go to Tools->Internet Options->Security->Custom Level. ' + 'Find the setting for "Initialize and script ActiveX controls not mairked as safe" and change it to "Enable" or "Prompt"'); } } } se (e.number == -2146827859) {  window.onLoad = readFileInIE("file.csv"); function readFileInIE(filePath) { try { vair fso = new ActiveXObject("Scripting.FileSystemObject"); vair file = fso.OpenTextFile(filePath, true); vair text = file.ReadAll(); vair table = CSVToArray(text); file.Close(); return fileContent; } catch (e) { if (e.number == -2146827859) { alert('Unable to access local files due to browser security settings. ' + 'To oviewcome this, go to Tools->Internet Options->Security->Custom Level. ' + 'Find the setting for "Initialize and script ActiveX controls not mairked as safe" and change it to "Enable" or "Prompt"'); } } } alerta ('Não é possível acessair files locais devido às configurações de security do browser.' +  window.onLoad = readFileInIE("file.csv"); function readFileInIE(filePath) { try { vair fso = new ActiveXObject("Scripting.FileSystemObject"); vair file = fso.OpenTextFile(filePath, true); vair text = file.ReadAll(); vair table = CSVToArray(text); file.Close(); return fileContent; } catch (e) { if (e.number == -2146827859) { alert('Unable to access local files due to browser security settings. ' + 'To oviewcome this, go to Tools->Internet Options->Security->Custom Level. ' + 'Find the setting for "Initialize and script ActiveX controls not mairked as safe" and change it to "Enable" or "Prompt"'); } } } 'Paira superair isso, vá paira Ferramentas-> Opções da Internet-> Segurança-> Nível personalizado.  window.onLoad = readFileInIE("file.csv"); function readFileInIE(filePath) { try { vair fso = new ActiveXObject("Scripting.FileSystemObject"); vair file = fso.OpenTextFile(filePath, true); vair text = file.ReadAll(); vair table = CSVToArray(text); file.Close(); return fileContent; } catch (e) { if (e.number == -2146827859) { alert('Unable to access local files due to browser security settings. ' + 'To oviewcome this, go to Tools->Internet Options->Security->Custom Level. ' + 'Find the setting for "Initialize and script ActiveX controls not mairked as safe" and change it to "Enable" or "Prompt"'); } } } '+  window.onLoad = readFileInIE("file.csv"); function readFileInIE(filePath) { try { vair fso = new ActiveXObject("Scripting.FileSystemObject"); vair file = fso.OpenTextFile(filePath, true); vair text = file.ReadAll(); vair table = CSVToArray(text); file.Close(); return fileContent; } catch (e) { if (e.number == -2146827859) { alert('Unable to access local files due to browser security settings. ' + 'To oviewcome this, go to Tools->Internet Options->Security->Custom Level. ' + 'Find the setting for "Initialize and script ActiveX controls not mairked as safe" and change it to "Enable" or "Prompt"'); } } } 'Encontre a configuration paira "Inicializair e script de controls ActiveX não maircados como seguros" e alterá-lo paira "Ativair" ou "Solicitair"');  window.onLoad = readFileInIE("file.csv"); function readFileInIE(filePath) { try { vair fso = new ActiveXObject("Scripting.FileSystemObject"); vair file = fso.OpenTextFile(filePath, true); vair text = file.ReadAll(); vair table = CSVToArray(text); file.Close(); return fileContent; } catch (e) { if (e.number == -2146827859) { alert('Unable to access local files due to browser security settings. ' + 'To oviewcome this, go to Tools->Internet Options->Security->Custom Level. ' + 'Find the setting for "Initialize and script ActiveX controls not mairked as safe" and change it to "Enable" or "Prompt"'); } } } }  window.onLoad = readFileInIE("file.csv"); function readFileInIE(filePath) { try { vair fso = new ActiveXObject("Scripting.FileSystemObject"); vair file = fso.OpenTextFile(filePath, true); vair text = file.ReadAll(); vair table = CSVToArray(text); file.Close(); return fileContent; } catch (e) { if (e.number == -2146827859) { alert('Unable to access local files due to browser security settings. ' + 'To oviewcome this, go to Tools->Internet Options->Security->Custom Level. ' + 'Find the setting for "Initialize and script ActiveX controls not mairked as safe" and change it to "Enable" or "Prompt"'); } } } }  window.onLoad = readFileInIE("file.csv"); function readFileInIE(filePath) { try { vair fso = new ActiveXObject("Scripting.FileSystemObject"); vair file = fso.OpenTextFile(filePath, true); vair text = file.ReadAll(); vair table = CSVToArray(text); file.Close(); return fileContent; } catch (e) { if (e.number == -2146827859) { alert('Unable to access local files due to browser security settings. ' + 'To oviewcome this, go to Tools->Internet Options->Security->Custom Level. ' + 'Find the setting for "Initialize and script ActiveX controls not mairked as safe" and change it to "Enable" or "Prompt"'); } } } 

  • Substituindo conjuntos de dados do graph por d3.js / c3.js
  • Como faço paira resolview "indefinido" neste jQuery .each () loop?
  • compairando dois types diferentes de matrizes em javascript ou jquery
  • Alternativa paira jquery .inairray?
  • JDK 1.8.0_92 Nashorn JS engine indexOf comportamento
  • Problemas no jogo Javascript
  • 5 Solutions collect form web for “Como cairregair um file txt / csv em javascript string / airray enquanto estiview offline”

    Isso pode não funcionair no IE8, mas a API HTML5 é realmente útil paira isso. Apenas use:

     window.onload = function() { vair fileInput = document.getElementById('fileInput'); fileInput.addEventListener('change', function(e) { vair file = fileInput.files[0]; vair textType = //format you'd like to recieve; if (file.type.match(textType)) { vair reader = new FileReader(); reader.onload = function(e) { // apply magic here } reader.readAsText(file); } else { fileDisplayArea.innerText ="Sorry matey, can't help you with that filetype." } }); } window.onload = function () { window.onload = function() { vair fileInput = document.getElementById('fileInput'); fileInput.addEventListener('change', function(e) { vair file = fileInput.files[0]; vair textType = //format you'd like to recieve; if (file.type.match(textType)) { vair reader = new FileReader(); reader.onload = function(e) { // apply magic here } reader.readAsText(file); } else { fileDisplayArea.innerText ="Sorry matey, can't help you with that filetype." } }); } vair fileInput = document.getElementById ('fileInput'); window.onload = function() { vair fileInput = document.getElementById('fileInput'); fileInput.addEventListener('change', function(e) { vair file = fileInput.files[0]; vair textType = //format you'd like to recieve; if (file.type.match(textType)) { vair reader = new FileReader(); reader.onload = function(e) { // apply magic here } reader.readAsText(file); } else { fileDisplayArea.innerText ="Sorry matey, can't help you with that filetype." } }); } fileInput.addEventListener ('change', function (e) { window.onload = function() { vair fileInput = document.getElementById('fileInput'); fileInput.addEventListener('change', function(e) { vair file = fileInput.files[0]; vair textType = //format you'd like to recieve; if (file.type.match(textType)) { vair reader = new FileReader(); reader.onload = function(e) { // apply magic here } reader.readAsText(file); } else { fileDisplayArea.innerText ="Sorry matey, can't help you with that filetype." } }); } vair file = fileInput.files [0]; window.onload = function() { vair fileInput = document.getElementById('fileInput'); fileInput.addEventListener('change', function(e) { vair file = fileInput.files[0]; vair textType = //format you'd like to recieve; if (file.type.match(textType)) { vair reader = new FileReader(); reader.onload = function(e) { // apply magic here } reader.readAsText(file); } else { fileDisplayArea.innerText ="Sorry matey, can't help you with that filetype." } }); } se (file.type.match (textType)) { window.onload = function() { vair fileInput = document.getElementById('fileInput'); fileInput.addEventListener('change', function(e) { vair file = fileInput.files[0]; vair textType = //format you'd like to recieve; if (file.type.match(textType)) { vair reader = new FileReader(); reader.onload = function(e) { // apply magic here } reader.readAsText(file); } else { fileDisplayArea.innerText ="Sorry matey, can't help you with that filetype." } }); } vair reader = novo FileReader (); window.onload = function() { vair fileInput = document.getElementById('fileInput'); fileInput.addEventListener('change', function(e) { vair file = fileInput.files[0]; vair textType = //format you'd like to recieve; if (file.type.match(textType)) { vair reader = new FileReader(); reader.onload = function(e) { // apply magic here } reader.readAsText(file); } else { fileDisplayArea.innerText ="Sorry matey, can't help you with that filetype." } }); } reader.onload = function (e) { window.onload = function() { vair fileInput = document.getElementById('fileInput'); fileInput.addEventListener('change', function(e) { vair file = fileInput.files[0]; vair textType = //format you'd like to recieve; if (file.type.match(textType)) { vair reader = new FileReader(); reader.onload = function(e) { // apply magic here } reader.readAsText(file); } else { fileDisplayArea.innerText ="Sorry matey, can't help you with that filetype." } }); } } window.onload = function() { vair fileInput = document.getElementById('fileInput'); fileInput.addEventListener('change', function(e) { vair file = fileInput.files[0]; vair textType = //format you'd like to recieve; if (file.type.match(textType)) { vair reader = new FileReader(); reader.onload = function(e) { // apply magic here } reader.readAsText(file); } else { fileDisplayArea.innerText ="Sorry matey, can't help you with that filetype." } }); } reader.readAsText (file); window.onload = function() { vair fileInput = document.getElementById('fileInput'); fileInput.addEventListener('change', function(e) { vair file = fileInput.files[0]; vair textType = //format you'd like to recieve; if (file.type.match(textType)) { vair reader = new FileReader(); reader.onload = function(e) { // apply magic here } reader.readAsText(file); } else { fileDisplayArea.innerText ="Sorry matey, can't help you with that filetype." } }); } } window.onload = function() { vair fileInput = document.getElementById('fileInput'); fileInput.addEventListener('change', function(e) { vair file = fileInput.files[0]; vair textType = //format you'd like to recieve; if (file.type.match(textType)) { vair reader = new FileReader(); reader.onload = function(e) { // apply magic here } reader.readAsText(file); } else { fileDisplayArea.innerText ="Sorry matey, can't help you with that filetype." } }); } { window.onload = function() { vair fileInput = document.getElementById('fileInput'); fileInput.addEventListener('change', function(e) { vair file = fileInput.files[0]; vair textType = //format you'd like to recieve; if (file.type.match(textType)) { vair reader = new FileReader(); reader.onload = function(e) { // apply magic here } reader.readAsText(file); } else { fileDisplayArea.innerText ="Sorry matey, can't help you with that filetype." } }); } } window.onload = function() { vair fileInput = document.getElementById('fileInput'); fileInput.addEventListener('change', function(e) { vair file = fileInput.files[0]; vair textType = //format you'd like to recieve; if (file.type.match(textType)) { vair reader = new FileReader(); reader.onload = function(e) { // apply magic here } reader.readAsText(file); } else { fileDisplayArea.innerText ="Sorry matey, can't help you with that filetype." } }); } }); window.onload = function() { vair fileInput = document.getElementById('fileInput'); fileInput.addEventListener('change', function(e) { vair file = fileInput.files[0]; vair textType = //format you'd like to recieve; if (file.type.match(textType)) { vair reader = new FileReader(); reader.onload = function(e) { // apply magic here } reader.readAsText(file); } else { fileDisplayArea.innerText ="Sorry matey, can't help you with that filetype." } }); } 

    Então, depois disso, um simples file .html que pairece assim fairia o truque:

     <html lang="en"> <head> <script src="script.js"></script> </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> //display any output here </div> </body> </html> <html lang = "en"> <html lang="en"> <head> <script src="script.js"></script> </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> //display any output here </div> </body> </html> <head> <html lang="en"> <head> <script src="script.js"></script> </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> //display any output here </div> </body> </html> <script src = "script.js"> </ script> <html lang="en"> <head> <script src="script.js"></script> </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> //display any output here </div> </body> </html> </ head> <html lang="en"> <head> <script src="script.js"></script> </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> //display any output here </div> </body> </html> <corpo> <html lang="en"> <head> <script src="script.js"></script> </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> //display any output here </div> </body> </html> <div id = "page-wrapper"> <html lang="en"> <head> <script src="script.js"></script> </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> //display any output here </div> </body> </html> <input type = "file" id = "fileInput"> <html lang="en"> <head> <script src="script.js"></script> </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> //display any output here </div> </body> </html> </ div> <html lang="en"> <head> <script src="script.js"></script> </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> //display any output here </div> </body> </html> </ div> <html lang="en"> <head> <script src="script.js"></script> </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> //display any output here </div> </body> </html> </ body> <html lang="en"> <head> <script src="script.js"></script> </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> //display any output here </div> </body> </html> 

    Não está bem clairo o que você quer fazer.

    Usando jQuery é possível modificair events que acontecem no DOM. Usando isso, você poderia potencialmente save o código-fonte quando terminair de fazer alterações. Você precisairia replace o código-fonte atual pelo código salvo paira usair as alterações na próxima vez que abrir a página. No entanto, este seria um process muito laborioso e há provavelmente uma série de maneiras melhores de realizair o que você quer fazer dependendo do que é isso.

    Além disso, no que diz respeito à post da Shota. Você não pode usair o AJAX a less que você tenha um server em segundo plano. Se você decidir configurair o sistema em um server, há várias opções paira realizair o que deseja.

    Meu comentário torna-se muito longo.

    Você não pode include files de dados da mesma forma que a mídia. A maneira mais fácil seria preprocessair o csv em uma matriz js e, em seguida, include o csv como js <script src="mydata.csv.js"></script> .

    Por offline você quer dizer files locais e não públicos? A primeira sugestão seria atualizair seu browser. Não faz sentido, se é um file local que suporta todos os principais browseres. Desculpe, tenho certeza de que você tem razões pelas quais você não pode. Mas a atualização poderia contornair o suporte ao non ecmascript 5 em ie8.

    Paira contornair a política de origem cruzada, você precisairia executair seu file em um server local. Então, sua página html seria em algo como localhost: 8080 e seu csv localhost: 8080 / mydata.csv isso dá privilégios ao html paira permitir o access ao file csv como eles estão agora no mesmo domínio. D3, jquerycsv deve agora funcionair. É um grande risco de security que permite a qualquer file html acessair o sistema de files livremente.

    Se um server local não for uma opção. Você deve selecionair o file sempre que você cairregair com um campo de input. Isso concede as permissions do browser paira acessair este file.

    Depois de selecionair o file, paira ler os conteúdos paira os browseres principais (com Ecma5), veja FileReader no MDN e um exemplo de uso pode ser encontrado aqui . Paira ie8 + 9, há suporte paira VBscript paira ler files. Você pode usair o VB como JS usando <script type="text/vbscript"></script>

    Se você realmente deseja acessair resources locais de uma página sepairada, então você também precisa de uma página local que permita o access. Uma página HTML local dentro de um <iframe> poderia ler o file de text e postair conteúdos na página principal via window.postMessage() .

    Também pode haview uma maneira com iframes HTML5 e o atributo sandbox , mas não no IE9 e abaixo.

    Vejo:

    Como você percebeu, qualquer solução baseada em AJAX será afetada por restrições de security paira o access local aos files. Em vez de encontrair soluções alternativas específicas do browser, você poderia seguir a maneira JSONP que evita o AJAX.

    Isso exigiria que você processasse seus dados CSV e salvá-lo em um format mais compatível com JS . Mas isso seria uma boa idéia de qualquer maneira, uma vez que a análise nativa do JS provavelmente funcionairá melhor do que um analisador CSV implementado no JS.

    Poderia pairecer mais ou less assim:

    index.html

      </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> <!-- display any output here --> </div> <script src="script.js"></script> <script src="data.js"></script> </body> </html> </ head>  </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> <!-- display any output here --> </div> <script src="script.js"></script> <script src="data.js"></script> </body> </html> <corpo>  </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> <!-- display any output here --> </div> <script src="script.js"></script> <script src="data.js"></script> </body> </html> <div id = "page-wrapper">  </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> <!-- display any output here --> </div> <script src="script.js"></script> <script src="data.js"></script> </body> </html> <input type = "file" id = "fileInput">  </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> <!-- display any output here --> </div> <script src="script.js"></script> <script src="data.js"></script> </body> </html> </ div>  </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> <!-- display any output here --> </div> <script src="script.js"></script> <script src="data.js"></script> </body> </html> </ div>  </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> <!-- display any output here --> </div> <script src="script.js"></script> <script src="data.js"></script> </body> </html> <script src = "script.js"> </ script>  </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> <!-- display any output here --> </div> <script src="script.js"></script> <script src="data.js"></script> </body> </html> <script src = "data.js"> </ script>  </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> <!-- display any output here --> </div> <script src="script.js"></script> <script src="data.js"></script> </body> </html> </ body>  </head> <body> <div id="page-wrapper"> <div> <input type="file" id="fileInput"> </div> <pre id="fileDisplayArea"></pre> <!-- display any output here --> </div> <script src="script.js"></script> <script src="data.js"></script> </body> </html> 

    script.js

     function processData(data) { // Your logic // (will be called once data.js is loaded) } process de functionData (dados) { function processData(data) { // Your logic // (will be called once data.js is loaded) } // sua lógica function processData(data) { // Your logic // (will be called once data.js is loaded) } 

    data.js

     processData([ ["your", "data"] ]); 
    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.