首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制从Firefox扩展输出调试输出(Zotero转换器)

强制从Firefox扩展输出调试输出(Zotero转换器)
EN

Stack Overflow用户
提问于 2014-03-18 18:42:05
回答 2查看 137关注 0票数 0

使用Firefox 28,在Ubuntu11.04GNU/Linux上使用Firebug 1.12.7

我正在使用火狐插件Zotero 4.0.17.1。作为安装的一部分,Zotero在firefox_profile/zotero/translators/中安装所谓的翻译器(JavaScript代码)。我想在BibTeX.js翻译器(firefox_profile/zotero/translators/BibTeX.js)中更改一些东西。我使用它的方式是在Zotero /导出/快速复制/默认输出格式下拉菜单中设置BibTex;然后当我使用Ctrl+Shift+C并选择一个Zotero项时,我会在剪贴板上得到一个bibtex格式的文本。

我可以确认更改BibTeX.js文件是否有效,因为我可以在fieldMap中添加新的字段,保存BibTeX.js文件,然后(不需要重新启动火狐)在项目上使用Ctrl+Shift+C之后,这些字段就会在剪贴板中结束。到现在为止还好。

然而,我想调试一些东西--结果这是非常困难的;下面的文章总结了我使用console.log()的经验。

Zotero论坛-开发网站翻译

对于开发人员来说,我只是一个问题,我正试图找到登录javascript代码的正确方法,比如使用firebug console.log函数。 我尝试了不同的方法,比如console.log,firebug.console.log,警报,.没有人在工作。 你通常怎么做?Zotero.debug()

现在,Zotero.debug()实际上需要启用:

输出[Zotero文件]

  1. 打开Zotero首选项的高级窗格。..。
  2. 在“调试输出日志记录”下单击“启用”

我这样做了,然后我可以看到"0行日志记录“条目的首选项开始填充,然后我可以单击查看输出-实际上,有一些Zotero调试消息,当我点击一个项目的Ctrl+Shift+C,从而触发BibTex.js

除了--这是个好消息--没有来自BibTex.jsBibTex.js!?我试图在每个函数开始时手动添加的那些函数,或者那些已经出现在源代码中的函数,都没有出现吗?好的,源代码中的大多数Zotero.debug都在某些if条件之内,而且它们可能都没有被击中;但是,我添加的那些函数都在每个函数开始时--仍然没有打印消息?!(在这个Debug输出中可以看到,例如,解析了BibTex.js的初始JSON字符串,因此正确的文件被确定地寻址)。

由此,我的第一个问题是:这个"translator“JavaScript运行在与通常的扩展JavaScript不同的上下文中,这是正确的吗?如果是这样的话,那就解释了为什么console.log() (或console.error())不能打印任何东西.

第二个问题:在像这样的JavaScript文件中,打印任何类型的调试都需要哪些选项?好像我不能从那里给window.alert()打电话..。如果我无法在Zotero输出日志记录或Firefox“浏览器控制台”(我理解为将旧的“错误控制台”替换为扩展JavaScript消息)中获得任何信息,我甚至会将其写入文件。

(我也尝试过firefox -zoterodebug --它只是在终端的stdout上提供了相同的Zotero输出,仍然缺少BibTex.js消息,所以这不是解决方案.)

非常感谢你的回答,

干杯!

EN

回答 2

Stack Overflow用户

发布于 2014-03-18 19:40:29

好的,明白了-原来,BibTex.js有两种执行模式:

  • doExport() -> buildCiteKey()writeField()
  • doImport() -> beginRecord() -> processField() .

我试图记录,比方说,processField,但我只是通过Ctrl+Shift+C触发doExport -这不会触发processField,它是一个导入函数.现在,我尝试只在doExport路径中记录函数,它们开始显示在日志中.

但是学习它还是很好的--为什么JavaScript不能在这个扩展代码中登录到Firefox控制台呢?

票数 0
EN

Stack Overflow用户

发布于 2014-03-19 04:56:38

你能不使用console.log吗?

只需做console.log('i am now dumping an object = ',obj)

然后,在浏览器控制台中,点击"obj“链接时,它将全部打印出来。

如何访问.log .info。从Services.console发出警告函数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22488255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档