【疑难杂症系列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'));
多么痛的领悟,这种事居然都能发生在我身上,重命名后问题就解决了。
四、痛定思痛
单就这个问题收获点什么:
- 当一个你认为绝对不会发生的问题发生了,不要总在心里默念不可能,不可能,这会降低你解决这个问题的智商。
- 当应该出现某种结果的时候,发生意外了,这时候应该从最基本的开始找起,拼写错误、路径错误、字母大小写等等
- 必然发生的事没发生,那么中间肯定发生了什么,就像这个例子中,alert做为一个函数必然应该弹窗,结果报错说不是函数,那么肯定被更改了
【疑难杂症系列01】TypeError: alert is not a function的更多相关文章
- 【疑难杂症01】TypeError: alert is not a function
一.背景 话说今天在调试js的时候,碰到一个很奇怪的问题,现记录一下.当使用alert()函数弹出提示时,总是报错,你没看错,alert函数报错了. 二.详细说明 当时正在做一个关于告警的页面展示功能 ...
- JavaScript进阶系列01,函数的声明,函数参数,函数闭包
本篇主要体验JavaScript函数的声明.函数参数以及函数闭包. □ 函数的声明 ※ 声明全局函数 通常这样声明函数: function doSth() { alert("可以在任何时候调 ...
- java io系列01之 "目录"
java io 系列目录如下: 01. java io系列01之 "目录" 02. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括 ...
- SAP接口编程 之 JCo3.0系列(01):JCoDestination
SAP接口编程 之 JCo3.0系列(01):JCoDestination 字数2101 阅读103 评论0 喜欢0 JCo3.0是Java语言与ABAP语言双向通讯的中间件.与之前1.0/2.0相比 ...
- Java 集合系列 01 总体框架
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 之 I/O 系列 01 ——基础
Java 之 I/O 系列 目录 Java 之 I/O 系列 01 ——基础 Java 之 I/O 系列 02 ——序列化(一) Java 之 I/O 系列 02 ——序列化(二) 整理<疯狂j ...
- 委托、Lambda表达式、事件系列01,委托是什么,委托的基本用法,委托的Method和Target属性
委托是一个类. namespace ConsoleApplication1 { internal delegate void MyDelegate(int val); class Program { ...
- [.NET MVC4 入门系列01]Helloworld MVC 4 第一个MVC4程序
[.NET MVC4 入门系列01]Helloworld MVC 4 第一个MVC4程序 一.练习项目: http://www.asp.net/mvc/tutorials/mvc-4/gettin ...
- php从入门到放弃系列-01.php环境的搭建
php从入门到放弃系列-01.php环境的搭建 一.为什么要学习php 1.php语言适用于中小型网站的快速开发: 2.并且有非常成熟的开源框架,例如yii,thinkphp等: 3.几乎全部的CMS ...
随机推荐
- Apache Shiro 学习记录5
本来这篇文章是想写从Factory加载ini配置到生成securityManager的过程的....但是貌似涉及的东西有点多...我学的又比较慢...很多类都来不及研究,我又怕等我后面的研究了前面的都 ...
- bootstrap1
让bootstarp3 支持ie的兼容模式: 支持浏览器的响应式布局: 是指网页既可以用在pc上,也可以用在手机上, 而且不需要修改源文件. bootstrap包括: css文件, 只需要加载: cs ...
- CDDA 源码解析
一.编译1:从 https://github.com/CleverRaven/Cataclysm-DDA 下载源码2:下载IDE CodeBlocks,http://pan.baidu.com/s/1 ...
- Windows无法完成安装,若要在此计算机上安装Windows,请中心启动安装。
现在安装系统已经很简单了,我觉得U盘启动的话两步就差不多了, 壹:设置BIOS,将U盘启动作为系统默认启动选项 贰:直接进去大白菜之类的,一键安装... 今天终于看到第三部了, 报错:Windows无 ...
- Excel—利用散点图计算相关系数
1.建立数组 2.创建散点图. 3.添加趋势线. 4.设立为线性函数,勾选显示公式.显示R^2值,R即为相关系数. 5. 备注:此外也可以使用=CORREL()函数对相关系数进行求值.其结果是一致的.
- spark 官方文档(1)——提交应用程序
Spark版本:1.6.2 spark-submit提供了在所有集群平台提交应用的统一接口,你不需要因为平台的迁移改变配置.Spark支持三种集群:Standalone.Apache Mesos和Ha ...
- 安卓中AIDL的使用方法快速入门
1.AIDL是什么? AIDL全称是Android Interface Definition Language,即安卓接口定义语言. 2.AIDL是用来做什么的?(为什么要有AIDL) AIDL是用来 ...
- EXCEL 2010学习笔记 —— 数据透视表
今天整理一下EXCEL2010 数据透视表的课程笔记,数据透视表可以对多组数据进行统计和整理,是一种基本的数据可视化工具. 记录6个方面的总结: 1.创建数据透视表 2.更改数据透视表的汇总方式 3. ...
- ARM概论(Advanced RISC Machines)
简介 ARM7是32 位通用微处理器ARM(Advanced RISC Machines)家族中的一员,具有比较低的电源消耗和良好的性价比, 基于(精简指令)RISC结构,指令集和相关的译码机制与微程 ...
- BeanUtils.populate(obj, map);
public static void populate(Object bean, Map<String, ? extends Object> properties) throws Ille ...