Альтернатива местному хранилищу для галереи в новом окне - PullRequest
0 голосов
/ 02 апреля 2020

Я использую localstorage, чтобы сохранить все источники изображений и открыть галерею в новой вкладке. Это прекрасно работает, когда параметры повара ie повернуты правильно. Но когда они блокируют все вещи, локальное хранилище просто не будет работать, а галерея пуста. Мой текущий подход с localalstorage:

Получить источники:

var source = localStorage.getItem('source') /*current lightbox item*/ ,
  b_Link = localStorage.getItem('bl') /*backlink*/ ,
  srcsStr = JSON.parse(localStorage.getItem("srcs")) /*all image sources as string*/ ,
  current = 0;
var image_o = [];

// Set current image and back link
document.getElementById("ig").src = source;
document.getElementById("back").href = b_Link;

// Set background by blurring the current image
document.getElementById("lightbox").style.backgroundImage = "url('" + source + "')";


// Set image sources object and set current counter of image
for (var i = 0; i < srcsStr.length; i++) {
  image_o.push({
    count: i,
    a_i: srcsStr[i]
  });

  if (source == image_o[i].a_i) {
    current = image_o[i].count;
  }
}

Читать источники:

// Image gallery
let im = document.getElementsByClassName("p");

for (var i = 0; i < im.length; i++) {
  im[i].addEventListener("click", function(event) {
    var srcs = [];

    for (var i = 0; i < im.length; i++) {
      srcs[i] = im[i].src;
    }

    localStorage.setItem("srcs", JSON.stringify(srcs));

    localStorage.setItem("source", event.target.src);
    localStorage.setItem("bl", window.location);

    console.log(localStorage.getItem('source'));
    console.log(localStorage.getItem('bl'));

    window.location = "http://www.foxmoments.de/lightbox.html";
    // document.getElementById("innerlb").style.backgroundImage = "url('" + event.target.src + "')";
  }, false);
}

1 Ответ

2 голосов
/ 03 апреля 2020

Я сейчас получаю доступ к вашей ссылке 'http://www.foxmoments.de/lightbox.html' и вижу, что ваш веб-сервер выполняет перенаправление с любого запроса на протокол https. Это может быть причиной того, что

localStorage одинаков для одного протокола и одного домена.

Попробуйте изменить строку

window.location = "http://www.foxmoments.de/lightbox.html";

На URL, использующий тот же домен и тот же протокол

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...