我正在学习如何开发离线Chrome应用。
我有三个组件:main.html,main.css,main.js
Main.js使用以下标记加载到main.html / html / head / script中:
<script type="text/javascript" src="main.js"></script>
并且正文标记中的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文档中未加载任何内容。
虽然这显然与安全有关,但我无法找到我的错误。