2012-10-07 258 views
4

我正在开发Chrome扩展的设置页面。在我的options.js文件中,我想用一些默认值初始化设置,并使用window.onload = initSettings();。在我的initSettings()函数中,我试图通过document.getElementById("someId")访问DOM的输入。但是这个电话总是返回null。我认为在所有的DOM元素都到位之后,会触发window.onload事件。Chrome扩展加载行为

我在做什么错?

回答

7

我在我的options.js文件的顶部有这个 - 自从我上次使用扩展名玩了这么久,我不能确定它有什么帮助。值得一试..

// fires when script is first loaded 
// can't do onInit directly here, because the DOM hasn't been loaded for options.html yet 
// we just set an event listener for document.DOMContentLoaded - In that handler we can call onInit 
document.addEventListener('DOMContentLoaded', onInit, false); 
+0

这是有效的。谢谢。 –

+0

不错。别客气。 :) – enhzflep

0

我需要我的浏览器扩展程序打开时运行一段代码,我用下面的代码:

document.addEventListener("DOMContentLoaded", function(){ checkCheckBoxes(); }, false); 

其中“checkCheckBoxes”是JavaScript函数,得到调用。