2013-06-26 2 views
3

У нас есть элемент управления, который был создан компанией, которая больше не существует. По какой-то причине на странице загрузки она теперь начала предоставлять что-то вроде этого на странице:Как «авто закрыть» Предупреждающие поля

<script type="text/javascript"> 
alert('Your license has expired!') 
</script> 

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

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

Любые идеи?

+0

дубликата http://stackoverflow.com/questions/463368/javascript-close-alert-box – Swapnil

+0

Посмотрите здесь: http://stackoverflow.com/questions/15466802/how-can-i-auto-hide-alert-box-after-it-showing-it – Atrox111

+0

@ Atrox111, что не помогает с проблемой OP – epascarello

ответ

15

Вы не можете закрыть окно с предупреждением, только вы можете угнать window.alert

window._alert = window.alert; 
window.alert = function() {  
}; 

код будет иметь появиться перед кодом библиотеки третьей группы. Это означает, что если вы хотите использовать оповещение, вам придется изменить свой код.

Один из способов вызвать метод, который имеет ссылку

window._alert("hi"); 

Другой способ будет перегружать «новый» функцию

window._alert = window.alert; 
window.alert = function (msg, showItNow) {  
    if (showItNow) { 
     window._alert(msg); 
    } 
}; 
window.alert("BOOOO!"); //I will not show up 
window.alert("hi", true); //I will show up 
+1

Если 3-й партийный код запускает предупреждение немедленно, вы можете восстановить функцию предупреждения после выполнения 3-го партийного кода: 'window.alert = window._alert;'. Конечно, это не работает, если асинхронно запускается предупреждение. – Strille

+1

Вариант решения epascarello заключается в том, чтобы вместо того, чтобы отправлять логическое значение, чтобы решить, должно ли отображаться реальное окно предупреждения, просто проверьте, является ли msg «Срок действия вашей лицензии!». и в этом случае игнорировать вызов window._alert(). – Strille

+0

@ Strille, Man У меня сегодня не было моего кофе, это хорошая идея! lol – epascarello

-1

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

+0

Я вижу, что вы не читали сообщение OP. OP имеет ** NO ** контроль над предупреждением. – epascarello

+0

что он сказал !!! – War