2014-03-18 39 views
0

使用Firefox 28,有螢火蟲1.12.7,在Ubuntu 11.04的GNU/Linux從Firefox擴展強制調試打印輸出(Zotero只翻譯)

我使用的Firefox插件Zotero只4.0.17.1。作爲其安裝的一部分,Zotero在firefox_profile/zotero/translators/中安裝了所謂的翻譯器(JavaScript代碼)。我想在BibTeX.js譯員(firefox_profile/zotero/translators/BibTeX.js)中更改一些內容。我使用它的方式是在Zotero首選項/導出/快速複製/默認輸出格式下拉菜單中設置BibTex;然後當我用選中的Zotero項目使用Ctrl + Shift + C時,剪貼板上會出現bibtex格式的文本。

我可以確認更改BibTeX.js文件的工作,因爲我可以添加新的領域fieldMap,保存BibTeX.js文件,隨後馬上(無火狐需要重新啓動)這些最終在剪貼板中,按Ctrl + Shift + C後在物品上使用。到現在爲止還挺好。

但是,我想調試一些東西 - 事實證明這是非常困難的;下面後總結我的經驗console.log()

Zotero Forums - Developing Site Translator

只是開發商的問題,我試圖找到登錄的JavaScript代碼的正確方法,比如使用Firebug控制檯.log功能。
我嘗試了不同的方式,如console.log,firebug.console.log,alert,...沒有任何人的作品。
你通常如何做?

Zotero.debug()

現在,Zotero.debug()實際上需要實現:

debug_output [Zotero Documentation]

  1. 打開Zotero只喜好的高級窗格。 ...
  2. 點擊「允許」下的調試輸出日誌

而我做了,然後我可以看到「0行登錄」中的首項開始填寫,然後我可以點擊查看輸出 - 而事實上,也有一些Zotero只調試消息出現,當我按Ctrl + Shift + C鍵上的項目,從而引發BibTex.js

除了 - 這裏是踢球 - 沒有Zotero.debugBibTex.js是當下!?在每項功能開始時,我都沒有嘗試手動添加這些功能; 那些已經存在於源代碼中的東西,顯示出來了嗎?好的,大多數Zotero.debug s的來源都在一些if有條件的,它們可能都沒有被擊中;然而,我添加的是在每個功能的開始 - 仍然沒有消息打印?! (並且在這個調試輸出中可以看到,也就是說,最初的JSON字符串正好是BibTex.js,因此解析了正確的文件)。

由此看來,我的第一個問題是:這個「翻譯器」JavaScript運行在與通常的擴展JavaScript不同的上下文中是否正確?如果是這樣,這將解釋爲什麼console.log()(或console.error())沒有打印任何東西,...

第二個問題:我有什麼選擇打印任何此類調試從一個JavaScript隨時隨地文件也是這樣嗎?看起來我不能從那裏調用window.alert() ......如果我在Zotero調試輸出日誌記錄中沒有得到任何東西,或者在Firefox「瀏覽器控制檯」(我知道它替換了舊的「Error控制檯「用於擴展JavaScript消息)。

(我也嘗試firefox -zoterodebug - 簡單地提供對終端的標準輸出相同Zotero只調試輸出,與BibTex.js消息仍下落不明,所以這不是解決......)

非常感謝提前爲任何答案,
乾杯!

+0

事實證明,一個'Zotero.debug()'將內部'BibTex.js'工作,如果在開始時加入(第一個'function'定義之前),並且如果在第一放置函數'buildCiteKey';不知道這是否意味着像getFieldValue()這樣的函數不會觸發? – sdaau

回答

0

好,知道了 - 事實證明,BibTex.js有執行的兩種模式:

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

我正在嘗試登錄,例如processField,但我只是通過Ctrl + Shift + C觸發doExport,這不會觸發processField,它是一個導入功能...現在,我試圖只記錄在doExport路徑中的功能,他們開始在日誌中顯示...

但它仍然很好學習 - 爲什麼不能在這個JavaScript擴展代碼,登錄到Firefox控制檯?

+0

譯員在沙盒環境中執行,並不是每個功能都可用。你應該使用'Zotero.debug'來記錄消息。 – Aurimas