Javascript ';未定义函数';尝试调用contentScript中的函数时

Javascript ';未定义函数';尝试调用contentScript中的函数时,javascript,firefox-addon-sdk,Javascript,Firefox Addon Sdk,加载项代码,创建一个面板 onShow(),从本地文件系统读取文件列表并填充到面板中 当'; 内容+=''; document.getElementById('resultFiles')。innerHTML+=content; } document.getElementById(“目录”).value=parsed.directory; }); 我认为工作代码应该是: var data = require("sdk/self").data; exports.get = function(cont

加载项代码,创建一个
面板

onShow()
,从本地文件系统读取文件列表并填充到
面板中

当<代码>'; 内容+=''; document.getElementById('resultFiles')。innerHTML+=content; } document.getElementById(“目录”).value=parsed.directory; });
我认为工作代码应该是:

var data = require("sdk/self").data;
exports.get = function(content) {
    return data.url(content);
};
您可以通过self.data.url()获取给定文件的资源URI。有关更多信息,请参阅。

由于内容脚本在FF30中的执行环境发生了更改而使用,如所述

var名称空间={
加载:函数(文件名){
emit(“加载”,文件名);
}
};
exportFunction(Namespace.load,unsafeWindow,{defineAs:“load”});
self.port.on(“uiData”),函数(uiData){
var parsed=JSON.parse(uiData),
内容='';
for(var i=0;i
为了便于维护,我为
数据使用了一个单独的模块,因此我已经使用了
self.Data.url()
。。见更新的问题。
var Data = require("./Data");
var panel = Panel.Panel({
  width: 450,
  height: 300,
  contentURL: Data.get("html/view.html"),
  contentScriptFile: Data.get("js/controller.js"),
});
JavaScript error: resource://jid1-xqhae0e9m07ekq-at-jetpack/addon-firefox/data/html/view.html, line 1: Namespace is not defined
var Namespace = {
  load: function(filename) {
    self.port.emit("load", filename);
  }
};

self.port.on("uiData", function (uiData) {
  var parsed = JSON.parse(uiData),
    content = '';

  for (var i = 0; i < parsed.files.length; i++) {

    content = '<tr>';
    content += '<td>' + parsed.files[i] + '</td>';
    content += '<td><img onclick="Namespace.load(' + parsed.files[i] + ');" src="../images/load-24.png"></img>';
    content += '</td></tr>';

    document.getElementById('resultFiles').innerHTML += content;
  }

  document.getElementById("directory").value = parsed.directory;
});
var data = require("sdk/self").data;
var panel = Panel.Panel({
  width: 450,
  height: 300,
  contentURL: data.url("html/view.html"),
  contentScriptFile: data.url("js/controller.js"),
});
var Namespace = {
  load: function(filename) {
    self.port.emit("load", filename);
  }
};

exportFunction(Namespace.load, unsafeWindow, {defineAs: "load"});

self.port.on("uiData", function (uiData) {
  var parsed = JSON.parse(uiData),
    content = '';

  for (var i = 0; i < parsed.files.length; i++) {

    content = '<tr>';
    content += '<td>' + parsed.files[i] + '</td>';
    content += '<td><img onclick="window.load(\'' + parsed.files[i] + '\');" src="../images/load-24.png"></img>';
    content += '</td></tr>';

    document.getElementById('resultFiles').innerHTML += content;
  }

  document.getElementById("directory").value = parsed.directory;
});