【发布时间】:2014-04-03 11:00:38
【问题描述】:
我正在使用 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 的内容(每次都会更改),然后调用该页面。是不是一个好主意、好的编码标准等等?
【问题讨论】:
-
您确定“结束”事件正在触发吗?将其登录到控制台以确保(在 history.back 之前添加 console.log('event failed'))
-
嗯,它会倒退,如果我把那句话拿出来,它就不会倒退,所以是的,我确信它正在触发。它可以返回,只是不会重新加载上一页。 -- 比尔
-
对不起,我看错了你的问题。您是否尝试过 history.back() 后跟 Window.location.reload();
-
是的,我以前试过,刚才又试了一次。没有快乐。
-
这似乎是一个重复的问题。请在此处查看答案:stackoverflow.com/a/35565785/5076414
标签: javascript html refresh reload browser-history