2014-02-17 33 views
0

我正在写一个小插件到Firefofx中,我使用小部件。我想知道如何设置适应内容的自动宽度。例如,我希望我的小部件显示数字,它们的长度不同。我可以设置我的小部件宽度,但是我怎么知道我的数字需要多少像素。有没有办法获得宽度,自动选择? 下面是我的一些代码: 我的窗口小部件(我的附加使用其他部件),自动宽度小部件

//ROBOTS META 
var robots_meta = widgets.Widget({ 
id: "robots_meta", 
label: "Displays information about robots meta", 
content: "Meta-robots n/a", 
width: 100 
}); 

这是功能我widget的是更新内容:

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 
    }); 
} 

回答

0

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

获取widget面板元素使用“元素选择器”插件和“Dom Inspector”。

请参见本主题在这里: Avoid panel to autoHide in Firefox extension

+0

我知道,我可以改变控件的宽度动态,但如何计算呢? –

+0

通过面板中的子节点并执行'''child [i] .getBoundingClientRect()。width'''并从那里获取最大值并将其设置到面板。如果你发布你的插件简化,我可以为你做 – Noitidart

+0

我放了一段我的代码有问题:) –

相关问题