js自定义方法名字download报错

在看一个页面代码的时候,发现了一个很简单的地方,但是报错,download不是一个方法,很是郁闷,代码大致如下
<a class="loadbtn" onclick="download()" >立即下载</a>

function download(){
    alert(0);

}

这个简单的代码会提示 download不是一个方法,也就是谁浏览器找不到这个方法名字,懵逼了;
原因:
download是html5中新增的一个属性,所以在现代浏览器上都会解析成属性。这个属性是一个事件定义,并且优先于js中的方法(window.download)。所以点调用download()方法的时候,在现代浏览器中会触发element.download();而不是window.download。所以在ie8这样的老古董下面没有element.download()会直接调用window.download();
一句话解释就是 download是h5的新属性,不能作为方法名字用,浏览器会懵逼,也可以理解成是关键字(虽然他不是关键字)
posted @ 2016-05-31 15:49  fstgshow  阅读(278)  评论(0编辑  收藏  举报