我在获取变量未定义时遇到问题。基本上,当我转到另一个页面然后单击浏览器时,变量将变为未定义并且脚本停止工作。但是,如果我刷新浏览器,它确实可以在初始加载时工作。
//player admin callback
function getPlayerAdmin(admin_callback){
var admin_data = false;
var formData = {
'player_id' : $('#post-v').attr('data-val')
};
$.ajax({
type: 'post',
url: '/popins/player/controls',
data : formData,
dataType : 'json',
success: function(data) {
admin_callback(data);
},
error : function(jqXHR, textStatus, errorThrown){
console.log(jqXHR);
}
});
}
//load youtube videos
function loadPlayerVideos(){
var player_id = $('#post-v').attr('data-val');
//get admin
getPlayerAdmin(function(output) {
console.log(JSON.stringify(output));
if(output.controls.is_admin == true){
admin_data = true;
}else{
admin_data = false;
}
});
}
返回的数据为:
{"controls":{"is_admin":true}}
我的问题是我收到“ Uncaught ReferenceError :admin_data 未定义”。
有人知道为什么变量未定义吗?
谢谢!
最佳答案
我之前也遇到过同样的问题。我认为这不是浏览器问题(我们谈论的是 session ,即只读服务器端,在客户端上您只需拥有 token 来识别您的 session 是什么)。
猜测当您返回时,服务器代码没有被执行(浏览器缓存了页面,并且只会加载图像或 JavaScript 等资源)。 您可以使用 localStorage
改进在客户端进行此类检查的行为示例:
localStorage.setItem('is_admin', 'true');
然后在 page1 中添加此客户端:
if(localStorage.getItem('is_admin') === 'true'){
}
这个应该可以正常工作。希望对您有帮助!
关于javascript - 返回上一页时变量未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40580677/