zoukankan      html  css  js  c++  java
  • 【疑难杂症01】TypeError: alert is not a function

    一、背景

      话说今天在调试js的时候,碰到一个很奇怪的问题,现记录一下。当使用alert()函数弹出提示时,总是报错,你没看错,alert函数报错了。

    二、详细说明

      当时正在做一个关于告警的页面展示功能,其中一段js为:

    function search(){
        var startTime=$("#startTime").val();
        var endTime=$("#endTime").val();
        if(startTime==null || startTime.trim()==""){
            alert("查询开始时间必须填写!")
            return;
        }
        if(endTime!=null && endTime.trim()!=""){
            if(endTime<=startTime){
                alert("查询结束时间必须大于查询开始时间");
                return;
            }
        }
        show(startTime,endTime);
    }

      就是普普通通的弹出提示功能,但是每当要弹出的时候总是报错,通过火狐的firebug查看,报错如下:

      当时我就蒙了,alert不是js最基本的方法吗,怎么告诉我不是一个函数呢?

    三、解决过程

      我一看,这个现象已经超出了我的认知范围,那是指定解决不了(其实偷偷解决了老半天),只能去百度,可是一个答案都没有。这时候我已经陷入深深的绝望了,距离问题发现已经一个多小时了,看来不得以只能拿出梯子上墙了,果然找到问题的根源了,网友提醒说alert是不是被重新定义了!!!,我一听就秒懂,我正在做告警的页面,会不会有的变量定义为alert了呢,回去赶紧搜索一下,果不其然找到了:

    //原始事件量
    var orgEvent = echarts.init(document.getElementById('orgEvent'));
    //事件量
    var event = echarts.init(document.getElementById('event'));
    //告警量
    var alert = echarts.init(document.getElementById('alert'));

      多么痛的领悟,这种事居然都能发生在我身上,重命名后问题就解决了。

    四、痛定思痛

      单就这个问题收获点什么:

    1. 当一个你认为绝对不会发生的问题发生了,不要总在心里默念不可能,不可能,这会降低你解决这个问题的智商。
    2. 当应该出现某种结果的时候,发生意外了,这时候应该从最基本的开始找起,拼写错误、路径错误、字母大小写等等
    3. 必然发生的事没发生,那么中间肯定发生了什么,就像这个例子中,alert做为一个函数必然应该弹窗,结果报错说不是函数,那么肯定被更改了
  • 相关阅读:
    [LeetCode]Sliding Window Maximum
    判断两根线段是否相交
    求幂,我居然又没做出来
    C++集合运算函数总结 & 需要有序集合的操作
    effective stl读书笔记 & stl里面提供的算法 & emplace & ostream_iterator
    利用位操作的几道题目
    C++的new_handler
    TCP的可靠性 窗口滑动 拥塞控制
    关于高性能网络编程的一些知识
    三种连接 & DOS & SYNFLOOD & 防御
  • 原文地址:https://www.cnblogs.com/yiwangzhibujian/p/6170231.html
Copyright © 2011-2022 走看看