TypeError:变量为Null

时间:2015-03-08 16:41:07

标签: javascript onload

我大致使用以下代码时出现错误。

38. var element_to_precede = document.getElementById("element");
39. var parent_element = element_to_precede.parentNode;

大致相当于

  

第39行:TypeError:element_to_precede为空“

我一直在读书,但我尝试过的却行不通。我有我的main.js,

'contentScriptWhen: "ready"' 

理论上,这应该只在其他所有内容加载完成后加载脚本。唯一合乎逻辑的解释是,这种方式失败了。

我尝试用

包装代码
window.onload = function() {
  //Summon function that calls for element_to_precede here
}

我要求它加载元素。不幸的是它似乎没有改变任何东西。

我主要是在尝试创建扩展,所以我正在使用mozilla的教程。

请不要建议使用jQuery我确信在标准JavaScript中有一个我缺少或没有正确实现的解决方案。我可能会遗漏一些基本的东西但是因为我的生活无法弄清楚它是什么。

编辑。

例如,我试过的代码。

window.onload=function(){
  var container = document.createElement("div");
  var element_to_precede = document.getElementById("element")
  var parent_element = element_to_precede.parentNode;
  parent_element.insertBefore(container, element_to_precede);
}

返回

  

JavaScript错误:第39行:TypeError:element_to_precede为空

修改 在再次查看代码之后,我发现与我所说的系统相反......事情没有发生

在询问以下命令后

if(document.readyState === "complete") {
  console.log("In theory everything is already loaded");
  console.log("Detected: " + document.getElementById("element") + " element");
}

我发现它会循环四次。每次它都会告诉我所有内容都已加载但检测到null element。暗示实际上页面不是“完整的”。

每次发现它没有被检测到时,我很想在等待命令200毫秒左右。

回到最初的问题。我怎么能阻止这个?

0 个答案:

没有答案