3

私はIE8で実行されるエンタープライズWebアプリケーションに取り組んでいます。blur()本体で呼び出されているため、IEウィンドウがバックグラウンドに送信されているようです。残念ながら、このコードは、ベンダーによって制御されているアプリケーションの一部に含まれています。

blur()実際に呼び出しているコードを変更せずに、本体で呼び出されないようにする方法はありますbody.blur()か?

これはエンタープライズアプリケーションであるため、アプリケーション自体の変更以外のソリューションも受け入れられます。IE8の設定、レジストリなどの変更など。

4

5 に答える 5

2

blurダミーメソッドにハードコーディングできるはずです。呼び出される前に入ることができる場合は、呼び出すだけです( DOM本体要素を指しているとbody.blur = function() {};仮定します)。body

于 2012-09-17T20:40:51.497 に答える
1

jQueryを使用すると、イベントをブロックするだけで済みます。

$('body').blur(function(e) { e.preventDefault(); });
于 2012-09-17T20:52:44.110 に答える
0

Firefoxを使用することがオプションである場合、 Greasemonkeyを使用して関数を置き換えることを提案する2つの答えがあります。

  1. javascriptを使用して、Facebookページ「like」のキーリスナーホットキーを作成する
  2. jQueryプラグイン関数を置き換えるGreasemonkeyスクリプト?

IEを使用する必要がある場合は、ページ自体を変更する必要がある場合があります。(IE用のTrixieとIE7pro
があることは知っていますが、使用されたことはありません)。

于 2012-09-17T20:59:38.030 に答える
0

javaScriptエディターを使用するときに問題が発生しました:CLEditor、jQueryのblur()メソッドを使用すると、IEウィンドウがバックグラウンドに移動します。CLEditorには、独自の本体を持つiframeがあります。その本体を抽出してbody.blur()を使用すると、IEブラウザーはバックグラウンドに移動します。

他のブラウザはその動作を示していないため、これが発生している場合はFFまたはChromeを使用することをお勧めします。

body.blur()を削除すると、IEの問題は現在よりも少なくなる可能性がありますが、それでもいくつかの小さなバグが発生する可能性があります(特定の時点で何かが焦点を失っていない)が、それで問題が発生する可能性があります。ただし、blur()イベントが何らかのロジックで強化されている場合は、問題が発生する可能性があります。次に、その定義を見つけて、ブラウザーで開始される他のイベント(onloadまたはready)にロジックを移動します。

于 2012-10-18T10:32:19.070 に答える
0
document.body.blur=function(){document.body.focus()}
于 2015-11-25T08:12:58.027 に答える