我有一个包含如下函数的页面:
$.ajax({
type: "POST",
url: "checkLogin.php"
})
.done(function( msg ) {
alert(msg );
if (msg != "true"){
window.location.replace("index.html");
}
});
此函数检查服务器上的会话是否处于活动状态。如果没有,它将重定向到index.html。
在第一次调用此.html时,它可以正常工作。但是如果我在页面加载之前使用href链接转到此页面,那么页面就不会执行任何JS。
我怎样才能再次调用JS?
当我打开另一个页面而不用之前用javascript加载该页面并单击href链接时它可以工作。
使用缓存的东西吗?
答案 0 :(得分:1)
尝试使用window.location.replace("index.html");
replace()
从文档历史记录中删除当前文档的网址,这意味着无法返回。
答案 1 :(得分:0)
你可以做的是用index.htlm#something追加index.html字符串,然后检测onload / on on document / on document-ready for index page,并执行你想要的代码
编辑:ie window.location.replace("index.html#session_check");
并在索引页面上,使用
if(window.location.href.indexOf("#session_check") != -1) {
// code here
}
答案 2 :(得分:0)
根据我的有限知识,由于安全原因,不会执行来自不同HTML文件的JS脚本。如果要执行JS脚本,则需要使用 eval(str)函数调用。其中str是JS脚本序列化为字符串。
第二种方法是动态创建"脚本" 标记,并提供指向所需JS文件的 src 属性。当脚本标记放在DOM中时,应该有希望执行脚本。