доступ к аргументам функции JavaScript - PullRequest
1 голос
/ 19 апреля 2011

Документация для JQAjaxSetup >> onError: говорит:

onError: anObject "Функция, вызываемая в случае сбоя запроса. Функция передается три Аргументы: объект XMLHttpRequest, строка, описывающая тип возникшей ошибки и необязательный объект исключения, если таковой возник. Возможные значения для второго аргумента (кроме нуля): «timeout», «error», «notmodified» и «parsererror». "

Я бы хотел отобразить сообщение об ошибке, используя что-то вроде

anAjax onError: ((html jQuery id: someId) before: (MyInstanceOfWAPainter error: 'An error message'));

Как мне это сделать? Возможно, делать все это на стороне клиента.

Ответы [ 3 ]

0 голосов
/ 19 апреля 2011

эта основная идея будет:

jQuery ajax onError: (собственное предупреждение javascript: 'ошибка')

см. JQAjaxTest >> testOnError.

0 голосов
/ 19 апреля 2011

Поскольку ошибка происходит на стороне клиента, и у вас, вероятно, возникает сбой соединения в таком случае, вам необходимо сгенерировать полный код JavaScript, который будет отображать ошибку (т.е. без рендеринга обратных вызовов в Seaside).

Приведенный ниже фрагмент сгенерирует функцию JS с двумя аргументами. Тело функции - это выражение jQuery, которое поместит сообщение об ошибке (внутри переменной _error) прямо перед элементом html dom с идентификатором someId.

anAjax 
   onError: (((html jQuery id: someId) before: (JSStream on: '_error'))
                           asFunction: #('_XMLHttpRequest' '_error'));

Лично я бы не использовал здесь функциональность JS-генерации Seaside, если идентификатор в someId не генерируется динамически. Если он динамически генерируется из Seaside, первый фрагмент может быть еще проще.

anAjax onError: (JSStream on: 'function(_XMLHttpRequest,_error){
                                  $(''#someId'').before(_error)})
0 голосов
/ 19 апреля 2011

Согласно документации, вы можете сделать ниже, чтобы показать ошибку:

onError:function(_XMLHttpRequest, _error) {
 alert(_error);
}
...