Javascript Firefox扩展:显示+;隐藏自动完成结果
设置任何Javascript Firefox扩展:显示+;隐藏自动完成结果,javascript,css,firefox,Javascript,Css,Firefox,设置任何 document.getElementById('PopupAutoCompleteRichResult').setAttribute('hidden', true) document.getElementById('PopupAutoCompleteRichResult').hidden = true document.getElementById('PopupAutoCompleteRichResul
document.getElementById('PopupAutoCompleteRichResult').setAttribute('hidden', true)
document.getElementById('PopupAutoCompleteRichResult').hidden = true
document.getElementById('PopupAutoCompleteRichResult').setAttribute('style', 'display: none;');`
隐藏自动完成弹出窗口
但我如何再次展示它呢?
display:-moz弹出窗口
和hidden=false都不起作用 您可能遇到以下问题:
使用setAttribute()修改某些
属性,尤其是XUL中的值,
工作方式不一致,如属性
指定默认值。访问
或者修改当前值,您可以
应该使用属性。对于
例如,使用elt.value而不是
elt.setAttribute('value',val)
您不应该显示和隐藏自动完成弹出窗口,自动完成小部件为用户处理该弹出窗口。特别是,如果它没有显示为自动完成操作的结果,它可能会变得混乱。我也无法在隐藏自动完成弹出窗口后将其取回。但根据您的具体需求,另一种可能的解决方案是通过首选项简单地禁用/启用条形图。这是我写的一个非常简单的概念证明,每10秒切换一次酒吧的可用性:
window.addEventListener("load", function(e) {
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService)
.getBranch("browser.urlbar.autocomplete.");
window.setInterval(function() {
prefs.setBoolPref("enabled", !prefs.getBoolPref("enabled"));
}, 10000);
}, false);
谢谢你,lwburk,我也试过这个。。。但是没有成功:/@Lukas-这里也是。我将留下这个答案,以便将来任何与此问题斗争的人都可以排除它。这就是为什么我只在特殊情况下停用它,并希望在以后激活它。-我之所以需要这样做,是因为mozilla firefox中有一个焦点bug:从source://XXXblake来看,正确的修复方法是检查焦点是否在urlbar中。然而,autocomplete小部件的焦点是所有的1328//hacky和break,现在没有办法做到这一点。因此,这只是对其进行修补,以确保alt+enter在focus@Lukas像往常一样,代码被检入时没有任何解释,说明它试图做什么以及为什么要这样做。这段代码在Firefox3中被删除了,所以我并不知道你想要实现什么。你太棒了,非常感谢!!-我们混淆了statt Prefs.setCharPref('browser.urlbar.autocomplete.enabled',!!display);vs Prefs.setBoolPref('browser.urlbar.autocomplete.enabled',!!display);