覆盖Javascript警报框

时间:2014-11-12 05:12:34

标签: javascript jquery alert

我有一个可以在我的网站上点击的添加到购物车按钮。单击该按钮时,可能会发生一些操作。默认操作是将项目添加到购物车,然后显示一个说明[#] item(s) added to your cart的警告框。但是在其他情况下,如果一个人没有选择一个选项,它也会提醒他们。

我想要做的是覆盖这些警报并显示我自己的警报。我必须根据警报中显示的文本来显示要显示的警报。

例如,如果某人想要购买商品并点击添加到购物车。将显示以下内容:[#] 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。

1 个答案:

答案 0 :(得分: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);
        }
    };
})();