Javascript 自动宽度小部件

Javascript 自动宽度小部件,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,我正在为Firefofx编写一个小插件,其中我使用了小部件。我想知道如何设置自动宽度,以适应内容。例如,我希望我的小部件显示不同长度的数字。我可以设置我的小部件宽度,但我如何知道我的数字需要多少像素。有没有办法自动选择宽度? 以下是我的一些代码: 我的小部件我的加载项使用其他小部件 //ROBOTS META var robots_meta = widgets.Widget({ id: "robots_meta", label: "Displays information about rob

我正在为Firefofx编写一个小插件,其中我使用了小部件。我想知道如何设置自动宽度,以适应内容。例如,我希望我的小部件显示不同长度的数字。我可以设置我的小部件宽度,但我如何知道我的数字需要多少像素。有没有办法自动选择宽度? 以下是我的一些代码: 我的小部件我的加载项使用其他小部件

//ROBOTS META
var robots_meta = widgets.Widget({
 id: "robots_meta",
 label: "Displays information about robots meta",
 content: "Meta-robots n/a",
 width: 100
});
以下是更新我的小部件内容的函数:

function meta_robots_checker(tab) {
  var meta_robots_w = robots_meta.getView(tab.window);
  meta_robots_w.content = 'Meta-robots n/a';
  worker = tab.attach({
    contentScriptFile: data.url("js/meta-checker.js")
   });
worker.port.emit("check_noindex");
worker.port.on('content', function(message) {    
        message = message.toLowerCase();
        message = message.replace('nofollow', '<span style="color:red">nofollow</span>');
        message = message.replace('noindex', '<span style="color:red">noindex</span>');
        meta_robots_w.content = message;
       //HERE MY WIDGET WIDTH SHOULD BE CHANGED
    });
}

您必须动态控制宽度,小部件是一个面板。不是像标签那样动态更改宽度的元素

要获取小部件面板元素,请使用带有Dom检查器的元素选择器插件

请参见此处的主题:

我知道我可以动态更改小部件的宽度,但如何计算它?检查面板中的子项并执行子项[I]。getBoundingClientRect.width并从中获取最大值,然后将其设置到面板。如果你发布你的插件simplified i can for uyou没有访问xul元素的权限,xul元素是附在小部件上的面板,必须首先获得它,按照步骤使用元素选择器和DOM检查器。否则,发布一个插件的简化测试用例,我会看看它,我可以在哪里发布简化测试。在我的代码准备好之前,我不想发送所有代码。你可以创建一个github帐户并上传到那里,或者你可以上传到任何地方,比如4shared,甚至发电子邮件给我