我希望我的上下文菜單項只有在點擊的節點是鏈接時纔可見,即href是磁鏈接或洪流鏈接。但項目是可見的所有鏈接,因爲上下文功能不執行,任何人都可以幫助爲什麼上下文功能不執行?ContextMenuItem上下文功能未執行
下面是代碼:
exports.main = function() {
var cm = require("sdk/context-menu");
var contextCode = ' self.on("context", function (node) { '+
' while(node.nodeName!="A") { node = node.parentNode; } '+
' var pat_magnet = /^magnet:/i; ' +
' var pat_torrent = /.torrent$/i; ' +
' if(pat_torrent.test(node.href) || pat_magnet.test(node.href)) { return true; } '+
' else { return false; } '+
' }); ';
var clickCode = ' self.on("click", function(node,data){ '+
' while(node.nodeName!="A") { node = node.parentNode; } '+
' var pat_hash = /[0-9abcdef]{32,40}/i; ' +
' var result = node.href.match(pat_hash); '+
' var hash = "" '
' if(result != null) { hash=result[0]; } '+
' var xhr = new XMLHttpRequest(); '+
' if(hash != "") { '+
' var apiCall = "https://www.furk.net/api/dl/add?api_key=*************&info_hash="+hash; '+
' } '+
' else{ '+
' var apiCall = "https://www.furk.net/api/dl/add?api_key=*************&url="+encodeURI(node.href); '+
' } '+
' xhr.open("GET",apiCall,true); '+
' xhr.onreadystatechange = function(){ if(xhr.readyState = 4) { if (xhr.response.status = "ok") { alert("Torrent added to Furk."); } else { alert("Torrent could not be added to Furk."); } } } '+
' xhr.send(null); '+
' });';
cm.Item({
label: "Add to Furk",
context: cm.SelectorContext("a[href]"),
contentScript: contextCode + clickCode
});
};
thanx爲您回覆!我已經編輯了代碼並給出了完整的代碼,現在我按照您的建議插入了分號,但每個仍然顯示相同的問題上下文菜單項,而不僅僅是指向.torrent或磁鏈接的鏈接 –
編輯我的答案以新評論張貼代碼。 – nmaier
另一個編輯,現在有一個完整的工作示例(當然,減去缺失的api鍵;) – nmaier