我正在使用:
我想使用Vimperator在网页中注入javascript,有点像Grease Monkey会做的,但是使用Vimperator及其:js
命令。
但Vimperator :js
命令和当前的html页面具有不同的范围,我无法从window
找到如何引用当前页面:js
对象。< / p>
例如,如果我打开Firefox Web控制台,我运行:
window.myvar = 10
然后,如果我在Vimperator工具栏中运行以下命令:
:js alert(window.myvar)
,然后显示undefined
。
那么,如何从Vimperator获取当前页面window
对象?
答案 0 :(得分:1)
content
。使用content
。例如。当前标签中呈现的文档为content.document
。
顺便说一句,使用window
获得的顶级对象代表Firefox GUI。
如果您尝试在content
对象上使用Vimperator的命令行自动完成,Vimperator和Pentadactyl中都会出现一个古老的错误,它会导致Firefox崩溃。由于它会自动触发(除非您禁用它),这意味着您甚至无法在命令行中键入content.
- 它将触发自动完成并立即使浏览器崩溃。
您需要做的是粘贴命令,或者输入say t.myVar
,然后跳回来填写conten
。 (不要将光标直接移回.
- 使用 Home 或其他东西。)这对屁股来说确实很痛苦,但确实如此。
您可以在深入时使用自动完成功能,而不是使用content
。
如果你需要探索窗口对象,你必须在另一个工具中使用它 - Firebug,开发人员工具等...浏览器控制台(CSJ)是一个很好的选择,因为它与你在Vimperator中看到的非常匹配。 / p>
您可以使用这样的键绑定:
:cmap <C-w> <Home>echo content.<End>
然后,如果使用:打开命令行,键入myVar
并按 Cw ,它会将命令行更改为{{1}并将光标放在末尾
(如果您愿意,可以将echo content.myVar
替换为echo
- 我发现js
更方便。)