使用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()的经验。
对于开发人员来说,我只是一个问题,我正试图找到登录javascript代码的正确方法,比如使用firebug console.log函数。 我尝试了不同的方法,比如console.log,firebug.console.log,警报,.没有人在工作。 你通常怎么做?Zotero.debug()
现在,Zotero.debug()实际上需要启用:
我这样做了,然后我可以看到"0行日志记录“条目的首选项开始填充,然后我可以单击查看输出-实际上,有一些Zotero调试消息,当我点击一个项目的Ctrl+Shift+C,从而触发BibTex.js
除了--这是个好消息--没有来自BibTex.js的BibTex.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消息,所以这不是解决方案.)
非常感谢你的回答,
干杯!
发布于 2014-03-18 19:40:29
好的,明白了-原来,BibTex.js有两种执行模式:
doExport() -> buildCiteKey(),writeField()doImport() -> beginRecord() -> processField() .我试图记录,比方说,processField,但我只是通过Ctrl+Shift+C触发doExport -这不会触发processField,它是一个导入函数.现在,我尝试只在doExport路径中记录函数,它们开始显示在日志中.
但是学习它还是很好的--为什么JavaScript不能在这个扩展代码中登录到Firefox控制台呢?
发布于 2014-03-19 04:56:38
你能不使用console.log吗?
只需做console.log('i am now dumping an object = ',obj)
然后,在浏览器控制台中,点击"obj“链接时,它将全部打印出来。
https://stackoverflow.com/questions/22488255
复制相似问题