【疑难杂症系列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 ...
随机推荐
- Html中设置访问页面不在后进行其他页面跳转
Html中设置访问页面不在后进行其他页面跳转 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...
- New Plan!
很久无写过blogs,荒废得差不多了,在博客园虽开bolg 5年多,但由于自己工作的问题,从开始的热情记录,到冷却冰冻,再到现在重拾起来,有一番感受:从大学刚毕业的制作网页菜鸟,开始接触DIV,CSS ...
- SpringMVC学习记录5
Springmvc流程中的扩展点有很多,可以在很多地方插入自己的代码逻辑达到控制流程的目的. 如果要对Controller的handler方法做统一的处理.我想应该会有很多选择,比如:@ModelAt ...
- coreseek增量索引
1.在多数情况下,因为Coreseek索引速度高达10MB/s,所以只需要创建一个索引源即可满足需求,但是在数据量随时激增的大型应用中(如SNS.评论系统等),单一的索引源将会给indexer造成极大 ...
- java程序员快速掌握python系列——概述
这一系列主要是总结学习python过程中的方方面面(已经学完,时间大概是一周左右).当然限于个人水平java也就是够用,python短时间内也不可能深入到哪里去.所以这次的分享的目的是能够快速使用py ...
- 有哪些经常被误用的 HTML、JavaScript、CSS 的元素、方法和属性?
一,以前想要把一个元素(input 之类的)设成只读的时候都是用 disabled,后来发现这是不对的. 因为在 HTML 里面,如果一个元素被设置成 disabled, 那么它的值就不会被发送到 s ...
- 提升PHP编程效率的20个要素
用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(兄弟连PHP编程: ...
- kali安装vmtools问题
切记使用此法,一定要确保kali没有装过vmware workstation自带的vmware_tools,不然要卸载之后才能使用.我当初就是安装了后使用此法,不能成功,卸载也不行,导致完全重装 安装 ...
- 转:aliyun阿里云Maven仓库地址——加速你的maven构建
maven仓库用过的人都知道,国内有多么的悲催.还好有比较好用的镜像可以使用,尽快记录下来.速度提升100倍. http://maven.aliyun.com/nexus/#view-reposito ...
- [原创]JavaEE在CentOS服务器上的部署
1.安装rz.sz命令 yum install lrzsz 2.配置环境变量 vi .bash_profile 默认的path:PATH=$PATH:$HOME/.local/bin:$HOME/bi ...