Установить sessionStorage, изменить изображение - PullRequest
1 голос
/ 22 февраля 2020

Я просто с помощью sh, что в зависимости от установленного сеансового хранилища изображение будет меняться ... сеансное хранилище установлено правильно, но изображение не изменится ...

что я пропустил?

function caption_on_off() {
    if(sessionStorage.getItem("caption_on_off") == 'off'){
        sessionStorage.setItem("caption_on_off", 'on');
       }else{
        sessionStorage.setItem("caption_on_off", 'off');
    }
}

function change_caption_img(){
    if(sessionStorage.getItem("caption_on_off") == 'off'){
        document.getElementById('caption_on_off_img').src = 'images/on.png';
    }else{
        document.getElementById('caption_on_off_img').src = 'images/off.png';
    }
}
change_caption_img();
<div id="gallery_div_caption" onclick="Hide('gallery_div_caption'); caption_on_off();"><img id="caption_on_off_img" src="images/off.png"></div>

Я думал о том, чтобы сделать это отдельно, потому что страница представляет собой страницу php и загружается с новыми переменными, новыми mysql запросами и c ., но мне нужно, чтобы страница помнила, какое изображение она должна загружать в зависимости от состояния сессионного хранилища, даже после перезагрузки.

Если бы это было все php, я бы сохранил в куче ie и прочитал бы его в php, можно ли прочитать сессионное хранилище через php?

--------------------- update -------- --------------

Я думал добавить переменную в мой ajax url, как предложено M1K1O, возможно, самый простой способ, но это беспорядок, потому что это скомпилировано с помощью php, а затем добавлено к тексту html, используя все возможные кавычки ... как мне добавить это здесь sessionstorage здесь?

$link_onclick .= "javascript:AjaxPhp('img_div', 'gallery_img.php', '?img_title=".clean_url($row_news['id_news']."-".$row_news['titolo'])."&amp;img_title_it=".clean_url($row_news['id_news']."-".$row_news['titolo_it'])."&amp;img_n=".$g."&amp;refer=".$row_news['refer']."&amp;link_out=".$link_out."&amp;captions_exist=".$captions_exist."&amp;caption_on_off= ... session storage here...'); Show('gallery_div'); return(false);";

1 Ответ

0 голосов
/ 22 февраля 2020

Я думаю, что ваша функция и логика c в порядке, но вызывается только один раз с вашим синтаксисом. Либо заверните его в готовый документ, либо загрузите документ, либо я бы предложил использовать IIFE, если вы хотите, чтобы ваша функция вызывалась при каждой перезагрузке страницы следующим образом:

(function change_caption_img(){
    if(sessionStorage.getItem("caption_on_off") == 'off'){
        document.getElementById('caption_on_off_img').src = 'images/on.png';
    }else{
        document.getElementById('caption_on_off_img').src = 'images/off.png';
    }
})();
...