我将index.html每1分钟上传到一个ftp。有时索引保持不变,有时它会稍微改变。当我的index.html发生变化时,我正在寻找一种播放声音的方法。 我每隔20秒自动刷新一次页面。我想播放一个声音,如果它已经改变,也许它可以读取文件的大小,如果播放声音是不同的? -
有可能吗?
感谢您的时间和分享您的技能。
答案 0 :(得分:0)
不考虑所有可能的边缘情况,这实际上是相当直接的。您只需要使用localStorage
。
想法是,在文档加载时,您计算文档的当前大小,然后将其与localStorage
中隐藏的值进行比较。
更好的解决方案是保存文件的大小和散列 - 这样,您仍然可以检测数据何时更改但文件大小没有变化。
我只是将背景颜色设置为绿色。
window.addEventListener('load', onDocLoaded, false);
function onDocLoaded(evt)
{
if (hasDocChanged())
document.body.style = "background-color: #A0FFA0";
}
function hasDocChanged()
{
let result = false;
var curSize = document.body.innerHTML.length + document.head.innerHTML.length;
var lastSize = localStorage['lastDocSize'];
if (curSize != lastSize)
result = true;
localStorage['lastDocSize'] = curSize;
return result;
}
答案 1 :(得分:0)
除非我遗漏了什么,否则我不会认为这很复杂。如果index.html已更改,只需添加一个自动播放的音频文件。如果没有更改,请删除音频文件,但不会发出声音。
Use embedded JDK (recommended)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="20">
<title></title>
</head>
<body>
<audio autoplay>
<source src="sound.mp3" type="audio/mpeg">
</audio>
your content here...
</body>
</html>
答案 2 :(得分:0)
只需在代码段上运行。您可以使用此Live On Fiddle。你也可以在你的元标记中使用这个onload,就像这样 -
<meta http-equiv="refresh" content="20" onload='$.playSound("http://www.noiseaddicts.com/samples_1w72b820/3724")'>
$(function() {
$.playSound('http://www.noiseaddicts.com/samples_1w72b820/3724');
})
&#13;
<script src='https://code.jquery.com/jquery-2.2.0.min.js'></script>
<script src='https://cdn.rawgit.com/admsev/jquery-play-sound/master/jquery.playSound.js'></script>
<body onload='$.playSound("http://www.noiseaddicts.com/samples_1w72b820/3724")'>
<p>
Please remember to remove .mp3 file extension.[Just a Reminder You can remove this]
</p>
</body>
&#13;