2008-10-31 4 views
3

J'ai un problème avec l'éditeur de texte riche FreeTextBox sur mon site ASP.NET. Le problème se produit lorsque j'accède au site avec Firefox, et j'ai une instance de freetextbox dans un div caché. La div masquée peut également être un panneau d'onglets AJAX. Le vrai problème est que quand la page se charge, elle lance une exception non interceptée (firebug montre la fonction StoreHtml()) et arrête la publication !!Bug FreeTextBox caché sur Firefox

Est-ce que n'importe où du problème et une solution pour cela?

Merci

Répondre

2

J'ai récemment rencontré un problème similaire avec les onglets de l'interface utilisateur jQuery. Ce que vous devez faire est de changer le CSS pour les onglets cachés à quelque chose comme:

.hiddentab 
{ 
    position: absolute; 
    left: -99999999999999; 
} 

Cela met Passants loin à gauche, et en mode de position absolue cela ne provoque pas de barres de défilement horizontales apparaissent. Lorsque l'onglet est affiché, supprimez simplement la classe hiddentab de l'élément tabulation.

Cela fonctionnera si le problème est lié au comportement étrange de Firefox avec display: none.

0

Firefox a un problème d'être à l'intérieur de quoi que ce soit avec un style d'affichage: aucun. Ce que j'ai fait était d'utiliser un div avec un zIndex qui a caché le div jusqu'à ce que j'en ai besoin. Je commencerais là.

0

Merci pour votre réponse, mais mon problème est actuellement que la FreeTextBox est dans un panneau d'onglets AJAX, par conséquent je devrais reconstruire toute la fonctionnalité de l'onglet afin de le faire, et je n'ai pas assez de temps!

Pour ce que ça vaut, je suis proche d'une solution (je pense) en définissant l'attribut .ReadOnly de la FTB à true et en le ramenant à false sur le controlo .PreRender. Cela fonctionne pour la première fois que la page se charge, alors maintenant je dois comprendre comment l'implémenter correctement pour chaque publication.

Je posterai la solution si je la trouve!

Merci quand même!

2

J'ai trouvé une autre solution au problème au cas où quelqu'un le chercherait. Ce que j'ai fait était d'utiliser javascript pour surcharger la fonction OnSubmit du formulaire, attrapant ainsi l'exception à l'origine du problème et continuant avec le reste du code.

Cependant, la solution est un peu "hack" car elle ne couvre pas toutes les situations. J'ai trouvé la solution dans le FreeTextBox forum et l'ai essayé et cela fonctionne. La seule différence dans mon code est que je retourne vrai à la fin de la fonction de priorité:

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; 
} 

Depuis mon site est un site ASP.NET Je devais aussi ajouter cette ligne dans le Page_Load():

ClientScript.RegisterOnSubmitStatement(this.GetType(), String.Concat(this.ClientID, "_OnSubmit"), "javascript: return OvrdSubmit();"); 

Espérons que cela aide n'importe qui avec le même problème.