私たちのASPXサイトでは、DEVExpressをIE 8(オリジナルのものでIE IE 8ではなくIE 9)ログインページに我々は常にエラーしている:ASPXとDEVExpressでIE 8のJS focus()メソッドをオーバーライドします...
Can't move focus to the control because it is invisible, not enabled, or of a type that does not accept the focus.
だから - 私が研究し、何かが見えない何かに集中しようとしていることが分かりました。だから私はfocus()メソッドをオーバーライドしてこのソリューションを試しました。以下に、短いサンプルHTMLページを示します。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>AccuLynx</title>
<script type="text/javascript">
HTMLInputElement.prototype.focusCpy = HTMLInputElement.prototype.focus;
HTMLInputElement.prototype.focus = function() {
if(this.style.display != 'none' && this.style.visibility != 'hidden' && !this.disabled && this.type != 'hidden') {
HTMLInputElement.prototype.focusCpy.apply(this, arguments);
}
}
</script>
</head>
<body>
<input type="submit" id="my_link" style="display:none;" value="dfsdfd" />
<script type="text/javascript">
document.getElementById('my_link').focus();
</script>
</body>
</html>
そして、テストページでは、実際のサイトではすべてが正常に見えますが、そうではありません。
JSコードは、2番目のJSファイルの先頭(最初はJQueryプラグイン)で実行される最初のものの1つですが、動作しません。
アドバイスありがとうございます。
私はまずフォーカスステートメントを発行し、これが発生しないようにするコードを見つけようとします。これが不可能な場合は、エラーを処理して、許容範囲内にフォーカスを設定してみてください。 –
それは奇妙な問題です。 DXに連絡して修正を依頼する方がよいでしょう。 – Mikhail