<a href="#" onClick="download();">download</a>
<script type="text/javascript">
function download() {
alert("hello");
}
</script>
点击链接时,我看不到提醒。相反,它说功能不存在。为什么呢?
当我将下载重命名为downloadx时,它仍然无效,因此我的功能名称不是问题。
答案 0 :(得分:2)
首先,@ gmo说由于函数的名称,你的代码永远不会在JSFiddle之外工作。
详细了解HERE (Can't use “download” as a function name in javascript)
从现在起,我将使用downloadx
作为功能名称
相反,即使您使用downloadx
,JSFiddle引起的另一个问题也会使您的代码无法正常运行。
simple-example-doesnt-work-on-jsfiddle
JSfiddle将您的代码包装在window.onload
函数中,因此download
函数不在范围内。
//<![CDATA[
window.onload=function(){
function downloadx() {
alert("hello");
}
}//]]>
你应该直接在窗口上声明它
window.downloadx = function() {
alert("hello");
}
Select No wrap - in <head>
在JSFiddle的左栏中
在任何情况下,你都应该为函数使用另一个名称,这就是为什么它不能在JSFiddle之外工作。
答案 1 :(得分:0)
我仍然认为这是一个重复的问题:Can't use "download" as a function name in javascript
并且与a
标记中的函数名称相关。
...&LT a取代;如下所述,元素在HTML5中具有下载属性 here ...
也许可以采用一种解决方法,但绝对不建议使用浏览器本机功能。
但是..如果你仍然认为它不是......请试试这个:
(不需要黑客)
function download() {
alert("hello");
}
function downloadx() {
alert("hello");
}
<a href="#" onClick="download();">download</a> <-- not working
<br />
<a href="#" onClick="downloadx();">downloadx</a> <-- works
<br />
<span onClick="download();">download</span> <-- works
最后一个使用download
作为function name
并且也有效,为什么?
因为它不是&lt; a&gt;标签