【问题标题】:How to make a Firefox Extension URL Button show a string when hovered over如何使 Firefox 扩展 URL 按钮在悬停时显示字符串
【发布时间】:2014-12-05 16:53:17
【问题描述】:

我已经完成了完整的 FF 扩展,并且在 URL 栏中有一个按钮。老板现在希望按钮在您将鼠标悬停在它上面时显示特定的字符串。这是我当前的按钮代码:

var loadURLButton = function(doc, urlBtnClick) {
    var urlBarIcons = doc.getElementById('urlbar-icons')
    var btn = doc.createElement('toolbarbutton');
    btn.setAttribute('id', 'urlbutton');
    btn.setAttribute('image', require('sdk/self').data.url("canNone.png"));
    btn.addEventListener('command', urlBtnClick, false);
    urlBarIcons.appendChild(btn);
    return btn;
}

var doc = require('sdk/window/utils').getMostRecentBrowserWindow().document;

var urlbarButton = loadURLButton(doc, openTab);

我可以添加什么以使悬停时弹出一些 id?

【问题讨论】:

  • 试试:btn.setAttribute('tooltip', 'blah')
  • 这似乎没有做到。我也试过标签,但我认为那是为了别的。
  • @JasePellerin 还记得the extension I told you about 吗?只需使用它来检查已经执行您想要的操作的按钮,例如刷新 URL 按钮,然后进行模仿。

标签: javascript firefox firefox-addon firefox-addon-sdk


【解决方案1】:

Awwwww 人,所有这些都是徒劳的。该属性不是工具提示,而是工具提示文本!所以只要做 btn.setAttribute('tooltiptext', 'whatever you want');

var loadURLButton = function(doc, urlBtnClick) {
    var urlBarIcons = doc.getElementById('urlbar-icons')
    var btn = doc.createElement('toolbarbutton');
    btn.setAttribute('id', 'urlbutton');
    btn.setAttribute('tooltiptext', 'mytt');
    btn.setAttribute('image', 'chrome://branding/content/icon32.png');
    btn.addEventListener('command', urlBtnClick, false);
    urlBarIcons.appendChild(btn);
    return btn;
}

var doc = document;

var urlbarButton = loadURLButton(doc, null);

【讨论】:

  • 这太完美了,太简单了!你是最棒的!
【解决方案2】:

我看到我尝试在它和所有匿名子项上设置工具提示属性的问题,但它没有工作。

所以我想给它附加一个面板。此代码不起作用,但我们的方向是正确的:

https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/panel#Examples

var loadURLButton = function(doc, urlBtnClick) {
    var urlBarIcons = doc.getElementById('urlbar-icons')
    var tooltip = doc.createElement('panel');
    tooltip.setAttribute('style', 'width:100px;height:100px;background-color:red;');
    tooltip.setAttribute('id', 'mytt');
    tooltip.textContent = 'my toold tip';
    var btn = doc.createElement('toolbarbutton');
    btn.setAttribute('id', 'urlbutton');
    btn.setAttribute('tooltip', 'mytt');
    btn.setAttribute('image', 'chrome://branding/content/icon32.png');
    btn.addEventListener('command', urlBtnClick, false);
    btn.appendChild(tooltip)
    urlBarIcons.appendChild(btn);
    return btn;
}

var doc = document;

var urlbarButton = loadURLButton(doc, null);

【讨论】:

  • 这似乎让我们更接近了。我们是否应该为 mouseenter 添加一个调用该弹出窗口的 eventListener?
  • 刷新我编辑的页面,所以现在当你点击它时会显示面板。我想为 mouseenter 的 addEventListener 并在一段时间后显示工具提示。因为看起来 xul popup 属性只有点击触发:
  • 编辑!!等我明白了!而不是弹出使用工具提示属性请参阅编辑!
  • 再次编辑给它textContent,作弊方式,如果你不想附加标签并设置它的值。效果很好:)
猜你喜欢
  • 2020-02-18
  • 1970-01-01
  • 2017-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-15
  • 1970-01-01
相关资源
最近更新 更多