【问题标题】:Overide Javascript Alert Box覆盖 Javascript 警报框
【发布时间】:2014-11-12 05:12:33
【问题描述】:

我有一个可以在我的网站上单击的“添加到购物车”按钮。单击该按钮时,可能会发生一些操作。默认操作是将商品添加到购物车,然后显示一个警告框,说明 [#] 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。

【问题讨论】:

    标签: javascript jquery alert


    【解决方案1】:

    您的替换函数应该接受一个参数,并检查它以根据文本执行不同的操作。并且为防止显示原始警报框,请不要拨打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);
            }
        };
    })();
    

    【讨论】:

      猜你喜欢
      • 2010-12-16
      • 1970-01-01
      • 1970-01-01
      • 2015-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 2010-10-02
      相关资源
      最近更新 更多