如何使用 Firefox Vimperator -> autocmd 回显当前 document.title?

如何使用 Firefox Vimperator -> autocmd 回显当前 document.title?

当我尝试这样做时

:autocmd LocationChange .* echo document.title

第一个显示的页面没有回显。如果我继续浏览下一个选项卡,最后一个选项卡的标题会回显。

有人知道我怎样才能让每次登陆页面时标题立即回显,而不是在“离开”标签时回显?

而且它每两次才有效。如果我浏览标签 1、2、3、4、5、6、7、8(下一个标签),输出将是(当前为 1)

  • _空白的
  • 1 的标题
  • _
  • 3 的标题
  • _
  • 5 的标题
  • _
  • 7 的标题
  • _

(现在位于标签 8)

但我想要

  • 1 的标题
  • 2 的标题
  • ...

有任何想法吗?

答案1

我的 Firefox 中没有出现“每隔一页的标题丢失”的情况(您使用的是旧版本吗?)。但是“离开页面标题”的情况和您一样。这种情况发生的原因很容易理解:只要您更改位置,就会触发此 LocationChange 事件,因此它只会获取当前文档标题(对我们来说,它就是离开文档!)。
一种解决方法是在获取标题之前添加一些延迟。这是我尝试的方法:将一个 javascript 文件放在 vimperator/plugin 目录中,在其中添加此方法:

   commands.addUserCommand ("showtitle", "add some delay before showing it",
    function (args) {
        setTimeout(function() {
            liberator.echo(document.title);
        }, 1);
    }
);

此插件将为 vimperator 添加一个新命令(重新启动 FF 后)。如果您调用此命令,它将在 1 毫秒后显示当前文档标题。现在我们可以将此新命令用于我们的自动命令:autocmd LocationChange .* showtitle。此后,您将看到当前文档标题(对我们来说是当前文档)在大多数情况下都会得到回显。您可以增加延迟以变得更加准确。

相关内容