javascript - 设置sessionStorage,更改图像

标签 javascript session-storage

我只是希望根据我设置的sessionstorage,图像会改变...sessionstorage设置正确,但图像不会改变...

我错过了什么?

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 查询等,但我需要该页面记住应该根据 session 存储状态加载哪个图像,即使在被加载之后也是如此。已重新加载。

如果都是 php,我会保存在 coockie 中并在 php 中读取它,我可以通过 php 读取sessionstorage吗?

----------------------更新----------------------

我正在考虑按照 M1K1O 的建议向我的 ajax url 添加一个变量,也许是最简单的方法,但这很困惑,因为它是通过 php 编译的,然后使用所有可能的引号添加到 html 文本中...... 我现在如何在此处添加 session 存储?

$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);";

最佳答案

我认为你的函数和逻辑很好,但用你的语法只调用一次。要么将其包装在文档就绪或文档加载中,要么我建议使用 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';
    }
})();

关于javascript - 设置sessionStorage,更改图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60347300/

相关文章:

javascript - 使用 JSON.parse(),如何获取多维数组中的值?

javascript - 如何检测 React 应用程序中动态生成的元素外部的点击?

带有 oidc-client.js 的 Angular 应用程序需要在第二个选项卡中登录

javascript - 提交表单并将值保存到 sessionStorage

javascript - Reactjs Search - 从 sessionStorage 获取数据并通过它进行映射

javascript - 如何调试特定的 JavaScript 点击事件?

JavaScript 内存释放

javascript - 用正则表达式替换文本中的多个字符串

javascript - 如何在网络存储中存储超过 5MB 的数据

jquery - 如何在达到限制后停止 sessionStorage 保存值