【发布时间】:2016-11-06 20:14:42
【问题描述】:
我正在实现一个 javascript 计时器,计时器在 iframe 中加载,并且该计时器还以特定间隔播放一些音频文件,基本上它是用于例行练习,所以说 10 秒有第一个练习,然后一分钟是第二个第三个持续 2 分钟,以此类推。
随着练习的时间结束并且下一个练习出现,我会更改该特定练习的音频,依此类推。我想要的是防止浏览器在手机(安卓、iOS)、笔记本电脑等各种模式下进入睡眠状态,直到计时器运行为止。
我已经使用了 2 种 ios 解决方案来重新加载页面,而对于其他解决方案,无论是 android 还是笔记本电脑,我正在尝试视频,如 here 所述。
我最后检查的代码是
var ua = {
Android: /Android/ig.test(navigator.userAgent),
// iOS: /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent)
iOS:/iPhone|iPad|iPod/i.test(navigator.userAgent)
};
<script type="text/javascript" src="js/sleep.js"></script>
if (ua.iOS) {
preventIosSleep = setInterval(function(){
window.top.location.href = '/';
setTimeout(function(){
try {
window.top.stop();
} catch (exception) {
document.execCommand('Stop');
}
}, 0);
}, 10000);
} else {
sleep.prevent();
}
// and when releasing the things
if (ua.iOS) {
clearInterval(preventIosSleep);
} else {
sleep.allow();
}
sleep.js 取自上述链接。已经尝试了大约一周的时间。此解决方案适用于除 MAC 上的 safari 之外的所有浏览器。谁能告诉我如何让 safari 浏览器不进入睡眠模式。
【问题讨论】:
-
你不能......你任由浏览器摆布。
-
您的“检查内容的最终代码”已将
AppleWebKit正则表达式注释掉,因此ua.iOS甚至不会在 macOS 上检测到 Safari。您是否至少确认可以在 macOS 上检测到 Safari?
标签: javascript safari