我有一个奇怪的问题。当我点击IE7中的链接时,窗口最小化。它似乎只是页面上链接的一个子集。它也不会始终发生在相同的链接上,并且因计算机而异。
示例链接文字:
<a hidefocus="on" href="#" tabindex="1"><span unselectable="on" id="extdd-102">Canadian Legislation</span></a>
之前有人看过这个或者知道可能导致它的原因吗?
答案 0 :(得分:16)
终于明白了。它实际上是导致问题的自定义JavaScript点击处理程序。
我的点击处理程序在当前活动元素上调用activeElement.blur();
(以便在元素被销毁时触发与模糊相关的事件)。
问题出现在IE中,如果你在任何非INPUT上调用模糊,它会使窗口最小化。
答案 1 :(得分:4)
我在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();});
}
});