Javascript 为什么启用面板代码时addone按钮丢失?
一旦启用了Javascript 为什么启用面板代码时addone按钮丢失?,javascript,firefox-addon,firefox-addon-sdk,Javascript,Firefox Addon,Firefox Addon Sdk,一旦启用了require(“sdk/panel”).panelcode,我就找不到addone按钮,甚至在自定义页面中也找不到,怎么了 var buttons = require('sdk/ui/button/action'); var tabs = require("sdk/tabs"); var data = require("sdk/panel").data; // var okentry=require("sdk/panel").Panel({ // contentURL: dat
require(“sdk/panel”).panel
code,我就找不到addone按钮,甚至在自定义页面中也找不到,怎么了
var buttons = require('sdk/ui/button/action');
var tabs = require("sdk/tabs");
var data = require("sdk/panel").data;
// var okentry=require("sdk/panel").Panel({
// contentURL: data.url("okentry.html"),
// contentScriptFile: data.url("okentry.js")
// });
var button = buttons.ActionButton({
id: "test-panel",
label: "ok",
icon: {
"16": "./icon-16.png",
"32": "./icon-32.png",
"64": "./icon-64.png"
},
onClick: handleClick
});
function handleClick(state) {
tabs.open("https://www.baidu.com/");
// okentry.show();
alert('hi');
console.info(tabs.length);
}
原因是这一行:
var data = require("sdk/panel").data;
但你应该写:
data = require("sdk/self").data;
由于require(“sdk/panel”)没有“数据”,变量变得未定义。稍后,当您调用data.url(“okentry.html”)时,浏览器会抛出异常和面板构造函数,并且下面的所有代码都不会执行。您似乎在遵循中的示例。假设您正在使用该示例中提供的图标,您的屏幕截图将清晰地显示新按钮(Firefox徽标)。也许我不明白你说“addone”是什么意思。您提供的代码中不存在文本“addone”,因此不清楚您实际试图引用的内容。您的代码创建的唯一按钮是ID为=“test panel”的按钮。是的,我正在遵循该示例,我的意思是当我使用诸如require(“sdk/panel”)之类的代码时。panel,我无法再次看到该按钮,为什么?您能对您的答案添加更多解释吗?这会更有帮助。它看起来像是简单的打字错误,但我添加了解释。