我如何在IE8中禁用body.blur()?(How do I disable body.blur(

2019-09-22 13:15发布

我就在IE8上运行的企业Web应用程序的工作。 它出现blur()被调用在所述主体使得所述IE窗口要被发送到的背景。 遗憾的是这个代码是在由供应商控制的应用程序的一部分。

是否有任何可能的方式来防止blur()被调用对身体没有改变,实际上是调用代码body.blur()

由于这是一个企业应用程序,在应用程序本身是可接受的变化以外的解决办法; 比如改变IE8设置,注册表等。

Answer 1:

你应该能够硬编码blur的虚方法。 如果你能在它被调用之前,只需拨打body.blur = function() {}; (假设body正指向您的DOM body元素)。



Answer 2:

使用jQuery你可以简单地阻止事件:

$('body').blur(function(e) { e.preventDefault(); });


Answer 3:

如果使用的是Firefox 一个选项,我有两个答案在那里我建议更换使用功能的Greasemonkey 。

  1. 使用JavaScript来创建的Facebook页面“喜欢”一个KeyListener的热键
  2. 的Greasemonkey脚本来代替jQuery插件功能?

如果你必须使用 IE浏览器,你可能需要更改页面本身。
(我知道有特里克和IE7Pro的 IE浏览器,但从未使用)。



Answer 4:

我使用JavaScript编辑器时,有一个问题: CLEditor ,如果我使用jQuery模糊()方法就可以了,IE窗口转到后台。 CLEditor有它的iframe有它自己的身体。 当你提取的身体和使用body.blur(),IE浏览器会去后台。

其他浏览器没有显示这种行为,所以最好使用FF或Chrome如果您遇到此。

如果您删除body.blur(),很可能你会跟IE少的问题比你现在,但你仍然可能会遇到一些小错误(自己是不是失去聚焦在某一点),但我想你可以忍受它。 但是,如果模糊()事件与一些逻辑丰富,也可能是问题 - 然后找到它的定义和逻辑移动到被开始使用的浏览器(onload事件,或准备)其他事情。



Answer 5:

document.body.blur=function(){document.body.focus()}


文章来源: How do I disable body.blur() in IE8?