我正在使用Moodle 2.6,但这不是Moodle的问题。活动定义为URL。该URL只是一个定制的视频播放器。当视频结束时,它会返回Moodle课程页面。一切正常,但Moodle页面并未反映此活动已完成,直到使用F5刷新/重新加载页面。这是我用来检测视频结尾的javascript代码:
video1.addEventListener("ended", function() {
history.back(1);
});
我尝试过使用它:
window.location.reload(history.go(-1));
代替history.back(1),认为这条新线有很多承诺,但没有快乐。我也试过了其他的东西,例如将'back'改为'go'(带有值的负数),但看起来功能相同。
这似乎应该是一件简单的事情,但我不是这方面的专家,所以我很难过。如何让浏览器返回页面然后重新加载?我主要在PC上使用IE,在iPad上使用Safari。
编辑,其他想法
当我研究这个时,一个建议是在URL的末尾添加一个唯一的ID,例如使用时间。所以,在我的情况下,我想从历史缓冲区中取出-1条目的URL并添加类似?123456(每次更改),然后调用该页面。这是一个好主意,良好的编码标准等等吗?
答案 0 :(得分:3)
正确的解决方案是设置您想要引荐用户的网址。
如果您无法做到这一点并回答您的问题,您可以尝试使用location.href将用户重定向到引荐来源页面:
location.href = document.referrer;
这会将用户重定向到他们来自的页面,浏览器不会尝试恢复页面的先前状态。
答案 1 :(得分:0)
也许尝试Window.history.back()
而不仅仅是历史。