我有奇怪的问题。当我点击IE7中的链接时,窗口最小化。它似乎只是页面上链接的一个子集。它也不会始终发生在同一个链接上,并且因计算机而异。当链接被点击时,IE随机最小化
例如链接文本:
<a hidefocus="on" href="#" tabindex="1"><span unselectable="on" id="extdd-102">Canadian Legislation</span></a>
没有人见过这个或有任何想法可能造成的呢?
我有奇怪的问题。当我点击IE7中的链接时,窗口最小化。它似乎只是页面上链接的一个子集。它也不会始终发生在同一个链接上,并且因计算机而异。当链接被点击时,IE随机最小化
例如链接文本:
<a hidefocus="on" href="#" tabindex="1"><span unselectable="on" id="extdd-102">Canadian Legislation</span></a>
没有人见过这个或有任何想法可能造成的呢?
终于搞明白了。它实际上是定制的JavaScript点击处理程序,导致问题。
我的点击处理程序在当前活动元素上调用activeElement.blur();
(这样当元素被销毁时,与模糊相关的事件被触发)。
问题出在IE中,如果你对任何不是INPUT的模糊调用,它会最小化窗口。
IE是越野车,所以你可以通过删除“tabindex”来排除故障。如果这不起作用,请尝试删除“不可选择”,然后“隐藏焦点”。 “Hideonfocus”听起来很奇怪。尝试先删除。你有任何第三方程序或插件与IE交互?它在另一台计算机上工作吗?
这发生在我使用模糊解决方法获取占位符属性以在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();});
}
});
我对Internet Explorer中的同一个问题10
此问题只发生在你调用document.body元素的blur()函数。
问题可以在您的浏览器控制台中简单执行
document.body.blur()进行重现。
document.activeElement.blur()函数调用是在document.activeElement.blur的第一次调用后出现,因为这个问题最常见的场景( )body元素将成为activeElement,随后调用document.activeElement.blur()将调用body元素上的模糊。
避免document.body的。模糊()函数调用,如果您有jQuery的,你可以介绍这个简单的逻辑
$(yourObj).is('body')
检查,如果你的目标是body元素,以避免它
伟大..非常有用! – Xstian 2015-04-07 13:49:42
这个模糊()函数调用是第一个谷歌响应,我得到了同样的问题,但解决方案是不一样的。当你试图模糊一个隐藏的输入时,IE似乎完全一样。或者是一个未附加的输入。 – Magus 2012-12-03 17:20:57
是恨IE的另一个原因! – geedubb 2013-06-10 14:47:55
这是关于世界上称为IE的最好工具的逻辑。 :-P在2015年阅读本文时,请停止使用和开发IE 7,8和9,并且最重要的是:不要试图在旧版软件中修复错误,以使您的客户受到欢迎。请不要为了更好的互联网世界而做。 – Codebeat 2015-04-14 05:35:02