2016-05-23 42 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更方便。)

相關問題