Firefoxの非表示のFreeTextBoxバグ
-
05-07-2019 - |
質問
ASP.NETサイトの FreeTextBox リッチテキストエディターに問題があります。この問題は、firefoxを使用してサイトにアクセスし、非表示のdivにfreetextboxインスタンスがある場合に発生します。非表示のdivは、AJAXタブパネルでもあります。実際の問題は、ページがロードされるときに、キャッチされない例外をスローし(firebugがStoreHtml()関数を表示する)、ポストバックを停止することです!!
問題のどこかとその解決策はありますか??
ありがとう
解決
最近、jQuery UIタブで同様の問題に遭遇しました。必要なことは、非表示タブのCSSを次のように変更することです。
.hiddentab
{
position: absolute;
left: -99999999999999;
}
これにより、非表示タブが左端に配置され、絶対位置モードでは、水平スクロールバーが表示されなくなります。タブが表示されたら、タブ要素からhiddentabクラスを削除します。
これは、問題がFirefoxのディスプレイに関する奇妙な動作:noneに関連している場合に機能します。
他のヒント
誰かがそれを探している場合のために、この問題に対する別の解決策を見つけました。私がやったのは、フォームのOnSubmit関数をオーバーライドするためにjavascriptを使用することで、問題の原因となった例外をキャッチし、残りのコードを続行しました。
ただし、ソリューションは一種の「ハック」です。すべての状況をカバーしているわけではないからです。 FreeTextBoxフォーラムで解決策を見つけて試しましたそしてそれは動作します。私のコードの唯一の違いは、オーバーライド関数の最後にtrueを返すことです:
function OvrdSubmit()
{
var ftbSubmit=document.forms[0].onsubmit;
if (typeof(ftbSubmit) == 'function')
{
document.forms[0].onsubmit = function()
{
try{ftbSubmit();}
catch(ex){}
}
}
// We are ok
return true;
}
私のサイトはASP.NETサイトなので、Page_Load()に次の行も追加する必要がありました。
ClientScript.RegisterOnSubmitStatement(this.GetType(), String.Concat(this.ClientID, "_OnSubmit"), "javascript: return OvrdSubmit();");
同じ問題を抱えている人に役立つことを願っています。
Firefoxには、display:noneのスタイルを持つものの中にいるという問題があります。私がやったのは、zIndexでdivを使用し、それが表示されるまでdivを非表示にすることでした。そこから始めます。
ご回答ありがとうございます。ただし、現在の問題は、FreeTextBoxがAJAXタブパネル内にあるということです。したがって、そうするためにはタブ機能全体を再構築する必要があり、十分な時間はありません。
それが価値があるのは、FTBの.ReadOnly属性をtrueに設定し、controlo .PreRenderでfalseに戻すことで、解決策に近いと思います。ページが初めてロードされたときに機能するため、すべてのポストバックに対してこれを適切に実装する方法を理解する必要があります。
解決策が見つかったら投稿します!
とにかくありがとう!