Chromeのappcachedウェブアプリから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」と警告しますが、次に更新するたびに(つまり、appcacheから提供されたときに)「Oops」と警告します。
含めることができないファイルに関するいくつかの事実:
- クロスオリジンです
- https経由で提供されます
- 「Cache-Control:public、max-age=0」応答ヘッダーがあります
それでも、これがFFで機能するのに、Chromeでは失敗する理由を正確に理解していません。これは、「HTTPキャッシュヘッダーとTLSを介して提供されるキャッシュページの制限がマニフェストによって上書きされる」ことに何らかの形で関連していると思います。http://www.w3.org/TR/html5/offline.htmlおよび/または「SSLを介して、マニフェスト内のすべてのリソースは同一生成元ポリシーを尊重する必要があります。」http://appcachefacts.info/にありますが、正確な方法がわかりません。
UbuntuでChromium12.0.742.112を使用してテストしました。
回避策の1つは、browseridをサポートせずにキャッシュ可能なアプリを作成し、browseridログインボタンをキャッシュマニフェストにないiframeに配置し、FALLBACK:を使用してbrowseridログインボタンをグレー表示することです。しかし、私は誰かが適切な解決策を持っていることを望んでいました。