Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firefox扩展:显示+;隐藏自动完成结果_Javascript_Css_Firefox - Fatal编程技术网

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