2015-12-27 20 views
0

所以我在這裏有一個小問題。我嘗試運行「jpm測試」來測試我試圖開發的附加組件。但每次我嘗試運行它,它只是顯示解釋jpm「無用的表達」

console.log: bf4c_autoloader: [JavaScript Warning: "TypeError: useless expression" {file: "resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/util/sequence.js" line: 333}] 

而且我不知道在哪裏搜索此錯誤。我發現的唯一的事情是this。因此,這裏有我用的所有文件:

index.js(主)

var tabs = require("sdk/tabs"); 
var data = require("sdk/self").data; 
var prefs = require("sdk/simple-prefs").prefs; 

tabs.on("ready", runScript); 
//tabs.open("http://battlelog.battlefield.com/bf4"); 
var re = /battlelog\.battlefield\.com\/bf4/; 

function runScript(tab) { 
    if(re.test(tab.url)){ 
     console.log("Found battlelog tab."); 
     var worker = tab.attach({ 
      contentScriptFile: data.url("bf4_checker.js") 
     }); 
     worker.port.on("sendingUsername",bf4Username) 
     worker.port.on("sendingUserid",bf4Userid) 
    }else{ 
     console.log("Looking if bf4c tab"); 
     var worker = tab.attach({ 
      contentScriptFile: data.url("bf4c_checker.js") 
     }); 
     //see https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts#Communicating_with_the_add-on for further reference 
     worker.port.on("bf4cCheckCallback",bf4cCheckCallback) 
    } 
} 
function bf4cCheckCallback(m){ 
    //{'bf4cPage' : false,'addownAllowed':false} 
    console.log(((m.bf4cPage)? 'Is a bf4c page':'Another page') + ", " + ((m.addownAllowed)? 'bf4c addon allowed!':'bf4c addon not allowed!')) 
} 
function bf4Username(name){ 
    prefs.setUsername = name; 
} 
function bf4Userid(id){ 
    prefs.setUserid = id; 
    console.log(prefs) 
} 

bf4_checker.js

function searchUsername(){ 
    if(elements = document.getElementsByClassName("username")){ 
     for (var i = 0; i < elements.length; i++) { 
      if(elements[i].href){ 
       return elements[i].innerHTML; 
      } 
     };  
    } 
    return false; 
} 
function searchUserid(name){ 
    if(elements = document.getElementsByClassName("wfont")){ 
     re = new RegExp('/bf4/soldier/'+name+'/stats/(\\d+)/'); 
     for (var i = 0; i < elements.length; i++) { 
      if(typeof (result = re.exec(elements[i].href)) == 'object'){ 
       return (parseInt(result[1])) 

      } 
     }  
    } 
    return false; 
} 
if(username = searchUsername()){ 
    self.port.emit('sendingUsername',username); 
    if(id = searchUserid(username)){ 
     self.port.emit('sendingUserid',id); 
    } 
} 
function callback(mutations) { 
    var re = /(highlight)/; 
    mutations.forEach(function(mutationRecord) { 
     var sepe = splittedClasses(mutationRecord.target.className) 
     if(mutationRecord.attributeName == "class" && sepe.indexOf('highlight') > -1 && sepe.indexOf('popover-visible') == -1 && mutationRecord.target.className != mutationRecord.oldValue){ 
      console.log("Got new battlereport! went from\n\t"+ mutationRecord.oldValue +"\n\t"+ mutationRecord.target.className) 
     } 
    }); 
} 
function splittedClasses(className){ 
    var classes = className.split(" "); 
    for (var i = 0; i < classes.length; i++) { 
     if(classes[i] == ""){ 
      classes.splice(i,1); 
     } 
    }; 
    return classes; 
} 
if(target = document.getElementById('battlereports-icon')){ 
    console.log("initialized listener !") 
    var observer = new MutationObserver(callback); 
     observer.observe(target,{ attributes : true, attributeOldValue: true, attributeFilter : ['class'] }); 
} 

function metaKeyUp (event) { 
    var key = event.keyCode || event.which; 
    if (key == 65) { 
     if(target.className != "log tools-item reports highlight"){ 
      console.log("highlighted the report button"); 
      target.className = "log tools-item reports highlight"; 
     } 

    } 
} 
document.body.addEventListener("keyup",metaKeyUp.bind(this)) 

,最後一個bf4c_checker.js

function isBF4CPage(){ 
    var header = document.getElementsByTagName("meta"); 
    for (var i = 0; i < header.length; i++) { 
     var curr = header[i]; 
     if(curr.name == "x-bf4c-page"){ 
      return {'bf4cPage' : true,'addownAllowed': (curr.content == "true")? true : false}; 
     } 
    } 
    return {'bf4cPage' : false,'addownAllowed':false}; 
} 
self.port.emit('bf4cCheckCallback',isBF4CPage()) 
+0

https://github.com/mozilla-jetpack/jpm/issues/345#issuecomment-143598276你的清單是否有ID字段? –

+0

@PaulS。我不知道,你能告訴我如何檢查這個嗎? (我的package.json沒有一個)不應該jpm生成一個? – Feirell

+0

@PaulS。有你的install.rdf – Feirell

回答

-1

好我只是爲了理解jpm test的實際目的,我推薦閱讀this articelthis one都告訴你如何實際使用這個功能。所以我的問題不是我的代碼,它只是試圖做一些我以前沒有減速過的事情。