当点击链接时,IE随机最小化

时间:2010-08-27 16:13:39

标签: javascript internet-explorer-7 minimize

我有一个奇怪的问题。当我点击IE7中的链接时,窗口最小化。它似乎只是页面上链接的一个子集。它也不会始终发生在相同的链接上,并且因计算机而异。

示例链接文字:
    <a hidefocus="on" href="#" tabindex="1"><span unselectable="on" id="extdd-102">Canadian Legislation</span></a>

之前有人看过这个或者知道可能导致它的原因吗?

4 个答案:

答案 0 :(得分:16)

终于明白了。它实际上是导致问题的自定义JavaScript点击处理程序

我的点击处理程序在当前活动元素上调用activeElement.blur();(以便在元素被销毁时触发与模糊相关的事件)。

问题出现在IE中,如果你在任何非INPUT上调用模糊,它会使窗口最小化。

答案 1 :(得分:4)

我在Internet Explorer 10上遇到了同样的问题。

  • Internet Explorer 10测试过的行为:

只有在document.body元素上调用blur()函数时才会出现此问题。

只需在浏览器控制台中执行

 document.body.blur() 
即可重现问题。

  • 发生此问题的常见方案:

document.activeElement.blur()函数调用是发生此问题的最常见方案,因为在第一次调用document.activeElement.blur()之后,body元素将成为activeElement并随后调用document.activeElement.blur ()将调用body元素上的模糊。

  • 解决方案:

避免使用document.body.blur()函数调用,如果你有jquery就可以引入这个简单的逻辑

 $(yourObj).is('body') 

检查你的对象是否是body元素,以避免对其进行blur()函数调用

答案 2 :(得分:0)

IE浏览器有问题,因此您可以通过删除“tabindex”进行故障排除。如果这不起作用尝试删除“不可选”,然后“hideonfocus”。 “Hideonfocus”听起来很奇怪。首先尝试删除它。你有与IE交互的任何第三方程序或插件吗?它可以在另一台计算机上运行吗?

答案 3 :(得分:0)

当我使用模糊解决方法获取占位符属性以在IE8上工作时,就会发生这种情况。 在解决方法中,我应该调用blur(),这会导致浏览器模糊(最小化到托盘)。 解决方案是使用:

$.each($('[placeholder]'), function(i,item){ item.blur();});

只是具体说明模糊的内容。

完整的占位符解决方法是:

$('[placeholder]').focus(function() {
    var input = $(this);
    if (input.val() === input.attr('placeholder')) {
        input.val('');
        input.removeClass('placeholder');
    }
}).blur(function() {
    var input = $(this);
    if (input.val() === '' || input.val() == input.attr('placeholder')) {
        input.addClass('placeholder');
        input.val(input.attr('placeholder'));
    }
}).blur();

$(window).on('load', function () {
    if ( $('[placeholder]').length ){
    $.each($('[placeholder]'), function(i, item){item.blur();});
    }
});