DevGang
Авторизоваться

Передача значения JavaScript между HTML-страницами

В этой статье мы рассмотрим передачу значения JavaScript между HTML-страницами. Итак, в основном у нас будут две HTML-страницы, и мы переместим некоторую информацию с одной страницы на другую, используя некоторые базовые методы. Так что эта штука будет очень полезна, когда вы попытаетесь создать веб-сайты, где вам нужно передавать данные с одной страницы на другую. Мы увидим это на очень простом примере и объяснении.

Методы передачи значения JavaScript между HTML-страницами

Хорошо, сначала давайте рассмотрим несколько различных методов передачи значения JavaScript между HTML-страницами:

  1. Локальное хранилище
  2. Строка запроса URL
  3. IndexedDB
  4. Одностраничное приложение (SPA)

Так что это основные методы, которые помогают в выполнении этой конкретной задачи. Мы рассмотрим два из этих методов: локальное хранилище и строку запроса URL. Поскольку эти методы довольно хороши и прямолинейны, IndexedDB также очень похож на локальное хранилище, но с ним сложно иметь дело. Одностраничные приложения — это не что иное, как AngularJS и ReactJS, что делает эту задачу намного проще, чем другие методы, а также это не та тема, которую мы можем затронуть в этой отдельной статье.

Передача значения JavaScript между HTML-страницами: локальное хранилище

Первый базовый метод — это локальное хранилище, которое на самом деле является одним из основных способов. Метод локального хранения уже задан самим JavaScript. Теперь давайте посмотрим на базовый пример, чтобы понять глубже, здесь мы попытаемся передать время на вторую страницу с первой страницы.

Итак, здесь мы создаем две HTML-страницы и два связанных с ними JS-файла. В первом HTML-файле мы просто добавили заголовок и кнопку. Затем в файле app.js мы создали объект для Date(), а затем добавили событие нажатия на кнопку, где мы получили доступ к методу localStorage().

Чтобы мы могли использовать его и сохранить дату с помощью localStorage.setItem(). Затем мы использовали этот window.document.location = './index2.html'; чтобы установить целевое местоположение, где нам нужно получить доступ к этим данным. Наконец, мы должны запустить эту функцию, когда эта страница загружается с помощью document.addEventListener('DOMContentLoaded', function(){ init();})

index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div class="content">
        <h1>Click The Button To Go On Next Page</h1>
        <button id="item1">Click</button>
    </div>
    <script src="app.js"></script>
</body>
</html>
app.js
const init = (e) =>{
    let btn = document.querySelector("#item1");

    let startTime = new Date();

    btn.addEventListener('click', function(){
        localStorage.setItem('start-time', startTime.getTime());
        window.document.location = './index2.html';
    });
};

document.addEventListener('DOMContentLoaded', function(){
    init();
});

Теперь мы добавили некоторые основные заголовки, а также добавим span с id, чтобы мы могли помещать в него данные, используя его ID. Затем в сценарии app2.js мы получим доступ к этим данным, используя этот метод localStorage.getItem('start-time'). Теперь мы создали еще один объект Date() и просто вычитаем оба значения времени. И мы добавили вызов функции при загрузке нашей второй страницы.

index2.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div class="content">
        <h1>Next Page</h1>
        <h2>Here's The Amount of Time Passed: <span id="time">TIME</span></h2>
    </div>

    <script src="app2.js"></script>
</body>
</html>
app2.js
const init = (e) =>{
    let spn = document.querySelector("#time");
    let endTime = new Date();
    let elapsedTime = endTime.getTime()- localStorage.getItem('start-time');
    spn.innerHTML = elapsedTime;
}

document.addEventListener("DOMContentLoaded", function(){
    init();
})

Передача значения JavaScript между HTML-страницами: строка запроса URL

Теперь давайте посмотрим на другой метод выполнения той же задачи — использование строки запроса URL. В файле app.js мы снова создали объект Date() и добавили такое же событие нажатия на эту кнопку. Здесь мы использовали window.document.location, где указали целевой HTML-файл, в котором мы будем получать доступ к этим данным. Кроме того, мы добавили '?startTime=' +startTime.getTime(), чтобы эта строка передавалась как URL вместе со временем.

app.js
const init = (e) =>{
    let btn = document.querySelector("#item1");

    let startTime = new Date();

    btn.addEventListener('click', function(){
        
        window.document.location = './index2.html' + '?startTime=' + startTime.getTime();
    });
};

document.addEventListener('DOMContentLoaded', function(){
    init();
});

Теперь в файле app2.js мы создали еще один объект даты, из которого будем вычитать startTime. Затем мы получим время из строки URL, используя метод window.location.search(). И из этого нам просто нужно получить время или просто данные, для этого мы применим метод замены к этой строке URL. И мы добавили регулярное выражение, чтобы мы могли получить строку URL, кроме данных, и заменили ее пустой строкой.

Наконец, мы просто вычтем данные из текущего времени. Итак, этот метод следует использовать для передачи небольшого количества данных, потому что данные, которые мы передаем, будут отражены в URL-адресе.

app2.js
"use strict"
const init = (e) =>{
    let spn = document.querySelector("#time");
    let endTime = new Date();
    console.log(endTime);
    let startTime = window.location.search.replace(/^.*?\=/,'');
    spn.innerHTML = endTime.getTime() - startTime;
}

document.addEventListener("DOMContentLoaded", function(){
    init();
})
#JavaScript #HTML
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу