我有一个引用清单文件的网页。页面上的javascript处理applicationCache上的“错误”事件。每次我导航到页面时,都会触发“错误”事件。
过去发生这种情况时,一直是因为清单中列出的某个文件无法加载。我已经单独检查了每一个,它们都加载了。
我写这个是为了在iOS上运行所以我只关心它是否适用于Safari。我在Windows和iPod 4.2.1上使用Safari 5.0.2尝试过它并得到了相同的结果。
主页面(default.aspx)
<!DOCTYPE HTML>
<html manifest="manifest.aspx">
<head>
...
manifest.aspx
CACHE MANIFEST
# Cache manifest version 99
default.aspx
default.css
scripts/jquery-json.js
scripts/jquery-min.js
scripts/app.js
images/button.png
images/error.png
app/assessment.aspx
app/discharge.aspx
app/episode.aspx
app/guide.aspx
app/notes.aspx
app/note check.aspx
app/supplement.aspx
app/warning.aspx
app.js
...
window.applicationCache.addEventListener("progress", progressCache, false);
window.applicationCache.addEventListener("cached", doneCache, false);
window.applicationCache.addEventListener("noupdate", noupdateCache, false);
window.applicationCache.addEventListener("updateready", updateCache, false);
window.applicationCache.addEventListener("error", errorCache, false);
window.applicationCache.addEventListener("obsolete", obsoleteCache, false);
function errorCache() {
if (!navigator.onLine) {
console.log("You're not online");
} else {
console.log("An error has occurred");
}
}
...
我尝试在errorCache函数中添加一个参数,但它似乎没有提供更多信息。
function errorCache(e) {
答案 0 :(得分:1)
事实证明,Safari不喜欢清单中包含空格的文件名。
重新命名后
app/note check.aspx
到
app/notecheck.aspx
它开始工作了。