如何使用Chrome中应用程序中应用程序中的browserid.org?此代码:
<html manifest="test.appcache"><head>
<script src="https://browserid.org/include.js"></script>
<script>
function test() {
if(navigator.id){
alert('OK!');
} else {
alert('Oops!');
}
}
</script>
</head><body onload="test();">test</body></html> 与test.appcache相结合:
CACHE MANIFEST对于.htaccess:
AddType text/cache-manifest .appcache每次在Firefox中刷新它时,都会发出“OK”警报。在Chrome中,当您第一次访问它时,它会发出“OK”警报,但是每次您刷新它时都会发出“Oops”警告(即当从appcache服务时)。
关于该文件的一些事实,它没有包括:
它的cross-origin
尽管如此,我还是不明白为什么这在FF中有效,但在Chrome中却失败了。我认为这在某种程度上与"HTTP缓存头和对TLS上提供的缓存页的限制被清单覆盖“有关。在http://www.w3.org/TR/html5/offline.html和/或“SSL上,清单中的所有资源都必须遵守相同的源策略”。在http://appcachefacts.info/上,但我不明白到底是怎么回事。
我在Ubuntu上用Chromium12.0.742.112进行了测试。
我想一个解决办法是在没有browserid支持的情况下创建一个可缓存的应用程序,并将browserid登录按钮放在一个不存在于缓存清单中的iframe中,并附带一个后备:显示一个灰掉的browserid登录按钮。但我希望有人能找到合适的解决方案。
发布于 2011-07-23 03:17:46
我做了一些实验,这只会影响通过http服务的网络应用程序。因此,为了避免这种情况,只需通过https为您的web应用程序提供服务。
我认为这仍然是Chrome的一个缺陷,但至少这是一个解决办法,所以标记问题就可以回答了。
https://stackoverflow.com/questions/6733216
复制相似问题