【问题标题】:IE is randomly minimizing when a link is clicked点击链接时 IE 随机最小化
【发布时间】:2011-04-04 21:48:37
【问题描述】:

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

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

任何人以前见过这种情况或知道可能是什么原因造成的?

【问题讨论】:

    标签: javascript internet-explorer-7 minimize


    【解决方案1】:

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

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

    问题出在 IE 中,如果您对任何不是 INPUT 的内容调用 blur,它会最小化窗口。

    【讨论】:

    • 这是第一个谷歌回复,我遇到了同样的问题,但解决方案不一样。当您尝试模糊隐藏的输入时,IE 似乎完全相同。或未附加的输入。
    • 这一切都与逻辑有关,使用世界上最好的工具 IE。 :-P 当您在 2015 年阅读本文时,请停止使用和开发 IE 7、8(和 9),最重要的是:不要尝试修复旧过时软件中的错误以使您的客户微笑。请不要为了更好的互联网世界而这样做。
    【解决方案2】:

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

    • Internet Explorer 10 测试行为:

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

    只需执行即可重现问题

     document.body.blur() 
    在您的浏览器控制台中。
    • 发生此问题的常见情况:

    document.activeElement.blur() 函数调用是发生此问题的最常见情况,因为在第一次调用 document.activeElement.blur() 后,正文元素将成为 activeElement,随后调用 document.activeElement.blur () 将在 body 元素上调用 blur。

    • 解决方案:

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

     $(yourObj).is('body') 

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

    【讨论】:

    • 太棒了..非常有用!!
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      当我使用模糊解决方法使占位符属性在 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();});
          }
      });
      

      【讨论】:

        猜你喜欢
        • 2010-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-11
        相关资源
        最近更新 更多