Javascript 设置会话存储,更改图像

Javascript 设置会话存储,更改图像,javascript,session-storage,Javascript,Session Storage,我只希望基于我设置的会话存储,图像会改变。。。会话存储设置正确,但图像不会更改 我错过了什么 函数标题\u开\u关(){ if(sessionStorage.getItem(“caption\u on\u off”)=“off”){ setItem(“caption_on_off”,“on”); }否则{ setItem(“caption_on_off”,“off”); } } 函数更改\u标题\u img(){ if(sessionStorage.getItem(“caption\u on\

我只希望基于我设置的会话存储,图像会改变。。。会话存储设置正确,但图像不会更改

我错过了什么

函数标题\u开\u关(){
if(sessionStorage.getItem(“caption\u on\u off”)=“off”){
setItem(“caption_on_off”,“on”);
}否则{
setItem(“caption_on_off”,“off”);
}
}
函数更改\u标题\u img(){
if(sessionStorage.getItem(“caption\u on\u off”)=“off”){
document.getElementById('caption_on_off_img')。src='images/on.png';
}否则{
document.getElementById('caption_on_off_img')。src='images/off.png';
}
}
更改标题和图片()

我认为您的函数和逻辑都很好,但您的语法只调用了一次。如果您希望在每个页面重新加载时调用函数,请将其包装为document ready或document load,或者我建议使用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';
    }
})();

我认为你的函数和逻辑很好,但是你的语法只调用了一次。如果您希望在每个页面重新加载时调用函数,请将其包装为document ready或document load,或者我建议使用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';
    }
})();

每次路由更改()都需要调用change\u caption\u img()函数。您可以登录并查看它是否在每次转到该页面时都被调用吗?会话存储在浏览器中,从未发送到服务器。所以不,除非通过ajax显式发送,否则PHP无法读取它。这有点混乱,因为必须识别图像的PHP页面是通过ajax重新加载的。。。但是我把change_caption_img()函数放在重新加载的脚本中php脚本的开头。。。所以我想我每次都会阅读和理解,但似乎不是…是HTML之前的脚本吗?那么DOM还没有加载。@alebal
…&;caption\u on\u off='+sessionStorage.getItem(“caption\u on\u off”)…
这是JavaScript,不是PHP。每次路由更改()都需要调用change\u caption\u img()函数。您可以登录并查看它是否在每次转到该页面时都被调用吗?会话存储在浏览器中,从未发送到服务器。所以不,除非通过ajax显式发送,否则PHP无法读取它。这有点混乱,因为必须识别图像的PHP页面是通过ajax重新加载的。。。但是我把change_caption_img()函数放在重新加载的脚本中php脚本的开头。。。所以我想我每次都会阅读和理解,但似乎不是…是HTML之前的脚本吗?那么DOM还没有加载。@alebal
…&;caption_on_off='+sessionStorage.getItem(“caption_on_off”))…
这是JavaScript,不是PHP。@alebal,你能看到函数是否在每次进入该页面时都被调用吗?你能发布ajax的部分吗?@alebal,你能看到函数是否在每次进入该页面时都被调用吗?你能发布ajax的部分吗?