Passing values between JS files

0

I have two pages .aspx with its respective .js file, I have passed between both information by means of parameters in the URL but I would like to pass from one .js to the other a variable that has too much information ... there is some way to pass another parameter without using URL?

    
asked by EriK 04.09.2017 в 18:43
source

2 answers

1

I think the most recommandable solution ( minus ) would be to use global variables in the following way:

// No usar ninguna palabra reservada para crear la variable
data = { //mi información de 10mb }

Then, from any other JavaScript file you can access it in the following way:

window.data // { //mi información de 10mb }

This is another solution entirely dependent on the execution order of your files .js

<script src="script1.js"></script> <!-- var X = 10; -->
<script src="script1.js"></script> <!-- console.log(X); // 10 -->    

You can also use localStorage (La maximum storage capacity for Google Chrome is 10MB)

// Aquí tienes tu variable, objeto, arreglo, lo que sea, definido en el script1.js
var data = {
  "name": "John",
  "lastname": "Doe",
  "age": 22,
  "isLogged": true,
  "pass": 1234567890
};

// Lo parseamos a texto para guardarlo en el localStorage
localStorage.setItem("data", JSON.stringify(data));

// Lo parseamos a un objeto cuando lo queremos traer para
// tratar de nuevo con el archivo script2.js
var dataFromlocalStorage = JSON.parse(localStorage.getItem("data"));
    
answered by 04.09.2017 в 18:49
0

You have several possible solutions:

1) Save the variable in a cookie, you can find more information at this link W3School Cookies .

Auxiliary methods

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+ d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for(var i = 0; i <ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

Save variable:

setCookie("nombreCookie", JSON.stringify(valueCookie), 1);

Get variable:

var miVariable = JSON.parse(getCookie("nombreCookie"));

2) Save the variable in local storage, you can find more information at this link W3School Local Stoage .

Save variable:

localStorage.setItem("nombreVariable", JSON.stringify(valorVariable));

Get variable:

var miVariable = JSON.parse(localStorage.getItem("nombreVariable"));

If you are going to use localStorage, you must be careful that the client's browser supports this functionality:

if (typeof(Storage) !== "undefined") {
    // Opción de LocalStorage.
} else {
    // Opción de cookies.
}
    
answered by 04.09.2017 в 19:06