javascript - jQuery .blur 在 Firefox 中不起作用

标签 javascript jquery blur

当我的网站失去焦点时,我试图隐藏它。 问题是,当我在网站上的 iframe 内单击时,它会失去焦点。为了防止这种情况,我有以下代码,它在 Chrome 甚至 Edge 中都能完美运行。为什么这在 Firefox 中不起作用?

jQuery(window).focus(function() {
    jQuery("body").show();
}).blur(function() {
    if(document.activeElement != (document.getElementsByTagName("iframe")[0] || document.getElementsByTagName("embed")[0])) {
        jQuery("body").hide();
    }
});

jQuery(document).ready 不能解决我的问题

最佳答案

Firefox 在使用 activeElement 时遇到一些问题,请尝试下面的代码:

jQuery(window).focus(function(e) {
    jQuery("body").show();
}).blur(function(e) {
    if(e.target != (document.getElementsByTagName("iframe")[0] || document.getElementsByTagName("embed")[0])) {
        jQuery("body").hide();
    }
});

希望它现在可以工作。 :)

关于javascript - jQuery .blur 在 Firefox 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40790732/

相关文章:

javascript - 带有样式组件的样式函数中的 React.useContext

javascript - Javascript 的条件形式

javascript - 加载页面时如何从按钮执行功能

svg feGaussianBlur : correlation between stdDeviation and size

javascript - 无法使用jquery的attr()获取div属性

javascript - 使用 mmenu 时无法添加页脚

javascript - 如何获取div中的所有元素

iOS 圆形、模糊的文本字段

ios - xCode - UIVisualEffectView 动画

javascript - ngrepeat 与表格一致编辑