2014-09-03 35 views
1

我的Firefox插件有一些問題。 我創建了一個contextmenu,它工作正常。但是這個函數不會返回元標籤的內容。Firefox插件SDK - getElementsByTagName

var tabs = require("sdk/tabs"); 
var contextMenu = require("sdk/context-menu"); 
[..] 
     onMessage: function() { 
     pageWorker = require("sdk/page-worker").Page({ 
      contentScript: "self.postMessage(document.head.getElementsByTagName('meta'));", 
      contentURL: tabs.activeTab.url, 
      onMessage: function(metaTags){ 
       var text= ""; 
       console.log(metaTags.length); 
       for(var i = 0; i < metaTags.length; i++){ 
        if(metaTags[i].getAttribute("property") == "description"){ 
         text = metaTags[i].getAttribute("content"); 
         break; 
        } 
       } 
       console.log(text); 
      } 
     }); 
    } 

console.log(metaTags.length)return undefined。這是一個Firefox-SDK問題。導致Skript在jsfiddle或greasemonkey中正常工作。

回答

1

用於加載項的Firefox插件SDK defaults to an "error" log level,這可防止console.log語句出現在瀏覽器控制檯中。若要解決此問題,請將extensions.sdk.console.logLevel(其中所有 SDK插件的更改記錄行爲)或extensions.extensionID.sdk.console.logLevel(其中extensionID是您的插件的Program ID)設置爲「全部」或「調試」。

+0

我使用「cfx run」。 「 」當您使用cfx run或cfx test運行加載項時,全局extensions.sdk.console.logLevel首選項會自動設置爲「info」。這意味着對console.log()的調用將出現在控制檯輸出中「。 – EsTyA 2014-09-03 16:51:01

+0

我相信控制檯輸出實際上顯示在您運行'cfx run'的命令行窗口中,而不是瀏覽器控制檯IIRC。你可以檢查嗎? – mc10 2014-09-03 17:05:44

+0

我按Strg + A.然後我選擇擴展。在那裏我激活了調試模式。所以我可以在Firefox的標準調試工具中看到console.log輸出。 – EsTyA 2014-09-03 17:50:34

相關問題