- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用:
我想使用Vimperator在网页中注入(inject) javascript,有点像 Grease Monkey 所做的那样,但使用 Vimperator 及其 :js
命令。
但是Vimperator :js
命令和当前html页面有不同的作用域,我无法找到如何引用当前页面window
对象,从:js
。
例如,如果我打开 Firefox Web 控制台,然后运行:
window.myvar = 10
然后,如果我在 Vimperator 的工具栏中运行以下命令:
:js alert(window.myvar)
,然后显示未定义
。
那么,如何从 Vimperator 获取当前页面 window
对象?
最佳答案
内容
。使用内容
。例如。当前选项卡中呈现的文档是 content.document
。
顺便说一下,通过 window
获得的顶级对象代表 Firefox GUI。
Vimperator 和 Pentadactyl 中都存在一个古老的错误,如果您尝试在 content
对象上使用 Vimperator 的命令行自动完成功能,该错误会使 Firefox 崩溃。由于它会自动触发(除非您禁用它),这意味着您甚至无法在命令行中输入 content.
- 它将触发自动完成并立即使浏览器崩溃。
您需要做的就是粘贴命令,或者输入 t.myVar
,然后跳回填写内容
。 (不要将光标直接移回。
- 使用Home或其他东西。)这确实是一个痛苦的事情,但事实就是如此。
深入了解后,您可以使用自动完成功能,但不能使用内容
。
如果您需要探索窗口对象,则必须在另一个工具中完成它 - Firebug、开发人员工具等...浏览器控制台 (C-S-J) 是一个不错的选择,因为它与您在 Vimperator 中看到的内容非常匹配。
您可以使用这样的键绑定(bind):
:cmap <C-w> <Home>echo content.<End>
然后,如果您使用 : 打开命令行,输入 myVar
并按 C-w,它将把命令行更改为 echo content.myVar
并将光标置于末尾。
(如果您愿意,可以将 echo
替换为 js
- 我发现 echo
更方便。)
关于javascript - 如何从 Vimperator 获取页面的窗口对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37398192/
我是一名优秀的程序员,十分优秀!