2013-12-06 6 views
0

У меня есть приложение с вершиной, но потому, что на странице формы так много данных для рендеринга из отдельной записи, а иногда, если у вас нет пациента, чтобы дождаться этих дополнительных 2-6 ​​секунд, вы иногда нажмите кнопку «Назад» браузера в приложении и нажмите на любую из них. вы получите сообщение об ошибке из приложения.Отключить кнопку браузера до завершения страницы.

Apex поддерживает jquery, если вы этого не знали.

Я хотел добавить Javascript, который отключает любые кнопки, включая кнопки браузера, до тех пор, пока страница моего приложения не закончит загрузку.

Я сделал поиск в google, и ни один из них не показал достойного решения.

Я попробовал что-нибудь еще, потому что я понятия не имею, как это сделать. У меня очень ограниченное знание JQuery.

Вы помощь будет означать много

благодаря

+3

Извините, вы не можете отключить кнопки браузера. –

+3

Исправьте ваше приложение для обработки этого условия. – Brad

+1

Редизайн приложения для предоставления пользователю полезной обратной связи? – roblarsen

ответ

1

Идеальный метод для отображения модального диалога, всплывающего на экране, что не позволяет пользователю нажав ничего на экране.

JQuery UI Modal Dialog демонстрационная: http://jqueryui.com/resources/demos/dialog/modal.html

И в этом модальный, показать что-то вроде, "Загрузка страницы Пожалуйста, подождите.."

И нет, вы не можете отключить кнопки браузера. Это не-нет.

+0

Модаль не собирается помешать им щелкнуть кнопки браузера! – epascarello

+0

Я не упоминал об этом в ответе. Я сказал, это невозможно. И мне, его ответ :) – naveen

+0

Я думаю, что это хорошо. Проблема заключается в том, что пользователь думает, что он повесил трубку. Обеспечение обратной связи с загрузкой кажется разумным решением. –

0

Вы действительно не хотите отключать кнопки браузера. Это будет означать, что любой может. Представьте себе сайт атаки, который сделал это. Это был бы кошмар.

Самое близкое, что вы можете сделать, это привязать к beforeunload, но это, вероятно, не поможет. В противном случае лучше сделать бэкэнд-ручку.

Я думаю, что ответ Навеен хорош. Это то, что вам следует рассмотреть, но я думаю, что это хорошая идея, чтобы сделать backend устойчивым к нетерпению пользователя в любом случае. В этом случае может быть полезно разрешить постепенную загрузку данных или, по крайней мере, заставить их не вызывать ошибок при отмене навигации. Я не знаю вашего дизайна системы, поэтому я не могу сделать конкретные рекомендации в этом отношении.

0

Невозможно отключить кнопки браузера, но вы можете добавить код для отключения входов на стороне клиента/сервера.

Отключить в HTML:

<button id="mybutton" disabled="disabled"></button> 

Отключить в JavaScript:

document.getElementById('mybutton').disabled=true; 

Disable с JQuery:

$("#mybutton").attr("disabled","disabled"); 

Override окно выгрузки:

<script language="JavaScript"> 
    window.onbeforeunload = confirmClose; 
    function confirmClose() { 
     return "Are you sure to close this page?"; 
    } 
</script> 
Смежные вопросы