2014-11-12 3 views
0

У меня есть кнопка добавления в корзину, которую можно щелкнуть на моем сайте. Когда эта кнопка нажата, может произойти несколько действий. Действие по умолчанию состоит в том, чтобы добавить элемент в корзину, а затем отобразить окно предупреждения с сообщением [#] item(s) added to your cart. Но есть и другие ситуации, когда, если человек не выбирает вариант, он также предупреждает их.Overside Javascript Alert Box

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

Например, если человек хочет купить товар, и они нажимают кнопку «Добавить в корзину». Будет показано следующее: [#] item(s) added to your cart. В этой заботе предупреждение имело item(s) added to your cart, тогда я хотел бы запустить определенную функцию JS.

Как это сделать?

Я нашел следующий код:

(function() { 
    var proxied = window.alert; 
    window.alert = function() { 
    // do something here 
    return proxied.apply(this, arguments); 
    }; 
})(); 

Это позволит мне запустить функцию, когда предупреждение окно открыто, но 1) не предотвращает коробку оригинального предупреждения от показа и 2) Мне нужно выполните определенную функцию, основанную на тексте предупреждения.

Полезное руководство и помощь в правильном направлении. Примеры также приветствуются.

Примечание: Я использую jQuery 2.1.1.

ответ

0

Ваша функция замены должна принять аргумент и изучить его, чтобы делать разные вещи на основе текста. Чтобы предотвратить отображение исходного окна оповещения, не вызывайте proxied.apply.

(function() { 
    var proxied = window.alert; 
    window.alert = function(text) { 
     if (text.indexOf("added to your cart")) { 
      // do something here 
     } else { 
      // do normal alert 
      return proxied.apply(this, arguments); 
     } 
    }; 
})(); 
+0

Got it. Спасибо! – L84