我正在学习如何开发离线 chrome 应用程序。
我有三个组件:main.html、main.css、main.js
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()的调用会产生空引用,因此 HTML 文档中没有加载任何内容。
虽然这显然似乎与安全有关,但我找不到我的错误在哪里。