Скрытая ошибка FreeTextBox в Firefox

У меня возникла проблема с текстовым редактором FreeTextBox на моем сайте ASP.NET. Проблема возникает, когда я захожу на сайт с помощью firefox, и у меня есть экземпляр freetextbox в скрытом div. Скрытый div также может быть панелью вкладок AJAX. Фактическая проблема заключается в том, что когда страница загружается, она выдает необработанное исключение (firebug показывает функцию StoreHtml()) и останавливает обратную передачу!!

Где-нибудь проблемы и решения для нее??

Спасибо


person Nikos Steiakakis    schedule 31.10.2008    source источник


Ответы (4)


Недавно я столкнулся с аналогичной проблемой с вкладками пользовательского интерфейса jQuery. Что вам нужно сделать, так это изменить CSS для скрытых вкладок на что-то вроде:

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

Это помещает скрытые вкладки далеко влево, а в режиме абсолютного положения это не приводит к появлению горизонтальных полос прокрутки. Когда вкладка отображается, просто удалите класс hiddentab из элемента вкладки.

Это сработает, если проблема связана со странным поведением Firefox с display: none.

person Vegard Larsen    schedule 03.11.2008

Я нашел другое решение проблемы, если кто-то его ищет. Что я сделал, так это использовал javascript для переопределения функции OnSubmit формы, тем самым поймав исключение, вызвавшее проблему, и продолжая работу с остальной частью кода.

Однако решение является своего рода «взломом», поскольку оно не охватывает все ситуации. Я нашел решение на форуме 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();");

Надеюсь, это поможет любому с той же проблемой.

person Nikos Steiakakis    schedule 06.11.2008

У Firefox есть проблема с нахождением внутри чего-либо со стилем display:none. Что я сделал, так это использовал div с zIndex, который скрывал div до тех пор, пока он мне не понадобился. Я бы начал оттуда.

person Community    schedule 31.10.2008

Спасибо за ваш ответ, однако моя проблема в настоящее время заключается в том, что FreeTextBox находится внутри панели вкладок AJAX, поэтому мне пришлось бы восстановить всю функциональность вкладки, чтобы сделать это, и у меня нет достаточно времени!

Что бы это ни стоило, я близок к решению (я думаю), установив для атрибута .ReadOnly FTB значение true, а затем вернув его обратно в false на элементе управления .PreRender. Это работает при первой загрузке страницы, поэтому теперь мне нужно выяснить, как правильно реализовать это для каждой обратной передачи.

Напишу решение, если найду!

Спасибо, в любом случае!

person Nikos Steiakakis    schedule 03.11.2008