Как отправить переменные из одного файла в другой в Javascript?
Я хочу отправить имя пользователя и пароль со страницы login.html
в index.html
, Как я могу сделать это как можно проще? И как мне кодировать мои строки, чтобы они были в кодировке URL и UTF-8?
ура
4 ответа
Вы можете использовать куки, window.name
отправлять данные по URL-адресу в виде строки запроса или через веб-хранилище.
В этом примере я собираюсь сохранить данные с одной страницы и прочитать их с другой страницы, используя localStorage - ( спецификации) и следующие методы:
login.html
function saveData(user, pass) {
var account = {
User: user,
Pass: pass
};
//converts to JSON string the Object
account = JSON.stringify(account);
//creates a base-64 encoded ASCII string
account = btoa(account);
//save the encoded accout to web storage
localStorage.setItem('_account', account);
}
index.html
function loadData() {
var account = localStorage.getItem('_account');
if (!account) return false;
localStorage.removeItem('_account');
//decodes a string data encoded using base-64
account = atob(account);
//parses to Object the JSON string
account = JSON.parse(account);
//do what you need with the Object
fillFields(account.User, account.Pass);
return true;
}
Передача объекта с одной страницы на другую по URL в виде строки запроса (поиск)
login.html
function saveData(user, pass) {
var account = {
User: user,
Pass: pass
};
account = JSON.stringify(account);
account = btoa(account);
location.assign("index.html?a=" + account);
}
index.html
function loadData() {
var account = location.search;
if (!account) return false;
account = account.substr(1);
//gets the 'a' parameter from querystring
var a = (/^a=/);
account = account.split("&").filter(function(item) {
return a.test(item);
});
if (!account.length) return false;
//gets the first element 'a' matched
account = account[0].replace("a=", "");
account = atob(account);
account = JSON.parse(account);
//do what you need with the Object
fillFields(account.User, account.Pass);
return true;
}
Смотрите расширенный ответ здесь: /questions/13377648/sohranyat-peremennyie-mezhdu-zagruzkami-stranits/13377664#13377664
Печенье! Вкуснятина для твоего животика.
Это было весело, но вот реальный ответ. Вы, вероятно, хотите хранить информацию в куки. Это хороший способ передачи информации из одной части вашего веб-приложения в другую. Это обычная техника, поэтому все платформы хорошо ее поддерживают.
Помните, что файлы cookie являются общедоступными, поэтому не размещайте информацию, которую можно взломать. Вы должны хешировать или зашифровать значение в куки. Вы также можете генерировать случайную информацию - это лучше. Например, когда пользователь входит в систему, генерирует случайное число и сохраняет это число и идентификатор пользователя в таблице, а затем передает случайное число в качестве файла cookie. Таким образом, только ваша БД имеет информацию, и вы не можете взломать куки (например, добавив ее).
Вы можете использовать плагин jquery-cookie:
https://github.com/carhartl/jquery-cookie
Использование:
<script src="/path/to/jquery.cookie.js"></script>
Создать сессионный cookie:
$.cookie('cookieName', 'myValue');
Создайте истекающий cookie, через 7 дней:
$.cookie('cookieName', 'myValue', { expires: 7 });
Прочитать cookie:
$.cookie('cookieName'); // => "myValue"
Удалить куки:
$.removeCookie('cookieName');
Ты можешь использовать encodeURI('some text to encode')
ко второй части вашего вопроса