首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mozrepl时,document.getElementById()返回null (但在firebug中不返回)

使用mozrepl时,document.getElementById()返回null (但在firebug中不返回)
EN

Stack Overflow用户
提问于 2010-03-21 03:57:32
回答 1查看 3.7K关注 0票数 2

我正在尝试使用莫兹列尔火狐扩展,从emacs内部给我一个Javascript。

我想我已经把它设置好了。我可以从emacs与REPL进行交互,并且可以像教程页面中所描述的那样探索文档。当我尝试做一些非常简单的事情时,问题就出现了,比如获得一个canvas元素的上下文:

代码语言:javascript
复制
repl> document.getElementById("mycanvas").getContext("2d")
!!! TypeError: document.getElementById("mycanvas") is null

Details:

  message: document.getElementById("mycanvas") is null
  fileName: chrome://mozrepl/content/repl.js -> file:///C:/Users/teamonkey/AppData/Roaming/Mozilla/Firefox/Profiles/chfdenuz.default/mozrepl.tmp.js
  lineNumber: 1
  stack:
    @chrome://mozrepl/content/repl.js -> file:///C:/Users/teamonkey/AppData/Roaming/Mozilla/Firefox/Profiles/chfdenuz.default/mozrepl.tmp.js:1
  name: TypeError

这不仅仅是一个特定的实例:任何对getElementById的调用都只会返回null。

如果我启动了firebug,我可以输入相同的内容,它将返回一个有效的上下文,但是我真的很想让REPL在emacs中工作。我不认为这是一个错误,但我可能没有正确配置mozrepl。有人能帮忙吗?

Mozrepl 1.0,Firefox 3.6

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-22 11:09:42

启动时,您所处的上下文是浏览器窗口本身,而不是任何特定的文档。您可以访问铬元素(菜单、工具栏、选项卡等)。document对象当前引用浏览器窗口。

若要在活动选项卡中将上下文切换到文档,请使用:

代码语言:javascript
复制
repl.enter(content)

现在,document对象是加载在active选项卡中的文档,因此您可以访问它的DOM树nad来操作它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2485866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档