我的index.html发生变化时如何播放声音

时间:2016-09-30 11:32:38

标签: html

我将index.html每1分钟上传到一个ftp。有时索引保持不变,有时它会稍微改变。当我的index.html发生变化时,我正在寻找一种播放声音的方法。 我每隔20秒自动刷新一次页面。我想播放一个声音,如果它已经改变,也许它可以读取文件的大小,如果播放声音是不同的? -

有可能吗?

感谢您的时间和分享您的技能。

3 个答案:

答案 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")'>

&#13;
&#13;
$(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;
&#13;
&#13;