オフライン chrome アプリの開発方法を学んでいます。
main.html、main.css、main.js の 3 つのコンポーネントがあります。
Main.js は、次のタグを使用して main.html /html/head/script にロードされます。
<script type="text/javascript" src="main.js"></script>
最初のアクションは body タグの onLoad イベントによってトリガーされます。
<body onLoad="initOnLoad(); ">
関数 initOnLoad() は、HTML ID で見つかったいくつかの要素を操作します。
...
1: function initOnLoad() {
2: alert("initOnLoad started");
3: initWaveArray();
4: addWaveButtons(document.getElementById("wave_selector"));
5: addBandButtons(document.getElementById("band_selector"));
6: e = document.getElementById("wave_HF");
7: activeWaveDiv = e;
8: setActiveWave();
9: initDateTime();
10: }
4 行目と 5 行目の呼び出しは、いくつかの要素を main.html に取り込みます。
これで、開発中にこのページを Chrome に読み込むと、すべてが期待どおりに機能します。しかし、プロジェクトを Chrome アプリとして読み込むと、manifest.jsonに次のプロパティがあります。
"app": {"launch": {"local_path": "main.html"}},
"web_accessible_resources": [
"main.js", "main.css", "main.html"]
...
アプリを起動すると、ページが読み込まれ、initOnLoad()関数が開始されますが、4 行目と 5 行目のdocument.getElementById()の呼び出しでnull参照が生成されるため、HTML ドキュメントには何も読み込まれません。
これは明らかにセキュリティに関連しているように見えますが、どこが間違っているのかわかりません。