2016-05-23 44 views
0

我使用:如何从Vimperator获取页面的窗口对象?

  • 火狐46
  • Vimperator的3.13

我想用Vimperator注入网页中的javascript,有点像油猴会做,但通过使用Vimperator的和它的:js命令。

但Vimperator的:js命令和当前HTML页面有不同的范围,我不能找出如何裁判当前window页面对象,从:js

例如,如果我打开Firefox的Web控制台,我跑:

window.myvar = 10 

然后,如果我跑了Vimperator的工具栏里面的以下内容:

:js alert(window.myvar) 

,然后显示undefined

所以,我如何才能从Vimperator的当前window页面对象?

回答

1

使用content

使用content。例如。在当前选项卡中呈现的文档是content.document

顺便说一句,你window获取顶级对象表示Firefox的GUI。

警告:

有两个Vimperator的和Pentadactyl一个古老的错误,如果您尝试使用Vimperator的的命令行自动完成的content对象上的崩溃Firefox浏览器。由于它会自动触发(除非您禁用它),这意味着您甚至无法在命令行中键入content. - 它会触发自动完成并立即崩溃浏览器。

您必须执行的操作是粘贴命令或键入say,t.myVar,然后跳回来填写conten。 (不要直接将光标移回. - 使用首页什么的。)这真的是一个痛苦的屁股,但它是。

您可以使用自动完成功能,一旦你在更深的,只是不能与content。浏览器控制台(C-S-J)是一个不错的选择,因为它与您在Vimperator中看到的内容紧密匹配。

解决方法

你可以使用一个按键这样的绑定:

:cmap <C-w> <Home>echo content.<End> 

然后,如果你打开命令行与,类型myVar并按CW,它将改变命令行为echo content.myVar,并将光标放在最后。
(如果您愿意,您可以用替换js - 我发现echo更方便。)

相关问题