Nano Hash - криптовалюты, майнинг, программирование

Виджет автоматической ширины

Пишу небольшую надстройку к 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
    });
}

Ответы:


1

вы должны динамически контролировать ширину, виджет представляет собой панель. не динамически изменяемый элемент ширины, такой как метка.

чтобы получить элемент панели виджетов, используйте аддон «Element Selector» с «Dom Inspector».

См. эту тему здесь: Избегайте автоматического скрытия панели в Расширение Firefox

18.02.2014
  • Я знаю, что могу динамически изменять ширину виджета, но как ее рассчитать? 18.02.2014
  • пройдите дочерние элементы на панели и выполните child[i].getBoundingClientRect().width, получите оттуда максимальное значение и установите его на панель. если вы опубликуете свой аддон упрощенно, я могу сделать это для вас 18.02.2014
  • у вас нет доступа к элементу xul, который является панелью, прикрепленной к виджету, вам нужно сначала получить его, следуйте инструкциям по использованию селектора элементов и инспектора DOM. В противном случае опубликуйте упрощенный тестовый пример вашего аддона и посмотрите на него. 18.02.2014
  • Где я могу опубликовать упрощенный тест. Я не хочу отправлять весь свой код, пока он не будет готов. 27.02.2014
  • вы можете создать учетную запись github и загрузить туда, или вы можете загрузить ее куда угодно, например, 4shared, или даже отправить мне письмо по электронной почте. 27.02.2014
  • Буду очень признателен, если дадите свой e-mail, не могу найти 01.03.2014
  • Моя электронная почта должна отображаться в моем профиле, это странно, дайте мне взглянуть. 01.03.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..