8

私は奇妙な問題を抱えています。IE7でリンクをクリックすると、ウィンドウが最小化されます。ページ上のリンクのサブセットにすぎないようです。また、同じリンクで一貫して発生するわけではなく、コンピューターごとに異なります。

リンクテキストの例:
<a hidefocus="on" href="#" tabindex="1"><span unselectable="on" id="extdd-102">Canadian Legislation</span></a>

誰かがこれを以前に見た、または何がそれを引き起こしているのか考えていますか?

4

4 に答える 4

17

ついにそれを理解した。問題を引き起こしたのは、実際にはカスタムJavaScriptクリックハンドラーでした。

私のクリックハンドラーはactiveElement.blur();現在アクティブな要素を呼び出していました(要素が破壊されたときにブラーに関連付けられたイベントが発生するように)。

問題はIEにあり、INPUT以外のものでblurを呼び出すと、ウィンドウが最小化されます。

于 2010-09-08T19:04:41.370 に答える
4

InternetExplorer10でも同じ問題が発生しました。

  • Internet Explorer 10でテストされた動作:

この問題は、document.body要素でblur()関数を呼び出した場合にのみ発生します。

実行するだけで問題を再現できます

document.body.blur()
ブラウザコンソールで。

  • この問題が発生する一般的なシナリオ:

document.activeElement.blur()関数の呼び出しは、この問題が発生する最も一般的なシナリオです。これは、document.activeElement.blur()を最初に呼び出した後、body要素がactiveElementになり、その後document.activeElement.blur()を呼び出すとbody要素でblurを呼び出します。

  • 解決:

document.body.blur()関数の呼び出しは避けてください。jqueryがある場合は、この単純なロジックを導入できます。

$(yourObj).is('body')

オブジェクトがbody要素であるかどうかを確認し、blur()関数の呼び出しを回避します

于 2015-04-07T13:27:37.887 に答える
0

IEにはバグがあるため、「tabindex」を削除することでトラブルシューティングを行うことができます。それでも問題が解決しない場合は、「選択不能」を削除してから「hideonfocus」を削除してみてください。「Hideonfocus」は奇妙に聞こえます。最初にそれを削除してみてください。IEと相互作用するサードパーティのプログラムまたはプラグインはありますか?別のコンピューターで動作しますか?

于 2010-08-28T16:47:31.127 に答える
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();});
    }
});
于 2014-01-19T08:26:13.173 に答える