换句话说,
之间有什么区别onclick="myFunction()"
和
onclick="JavaScript:myFunction()"
答案 0 :(得分:13)
事件处理程序中的JavaScript:
TYPE / LABEL / PREFIX(找不到它的实际名称)仅用于一个目的:
在IE中, IFF 页面上的第一个脚本是不 JavaScript,页面其余部分的内联JavaScript(仍然有?)有{{1前缀它。
不要将其与href中的javascript:
协议相混淆(顺便说一下也应避免使用)。只有在AREA标记中的旧网景中才需要javascript:
。当您看到href="javascript:..."
某人需要使用href="javascript:void(0)"
时,除非他们将其放在那里以提醒用户该链接是javascript驱动的链接。如果关闭JS,它将失败。
我查找了msdn的官方文档,但这里有讨论支持我:
Calling VBScript from Javascript
Internet Explorer默认使用第一个脚本元素的语言 它解析。因此,如果第一个脚本元素是javascript,则不应该 需要在事件处理程序中指定“javascript:”。
http://www.webdeveloper.com/forum/archive/index.php/t-135462.html
你必须告诉IE你正在使用VBS和JScript,否则就是 假设在这种情况下所有函数都是VBS。要么添加一个 (空?)JavaScript脚本元素[在页面顶部]或使用jscript:protocol 平变化。 平变化= “JScript的:的location.hash =此[this.selectedIndex]。价值;”
实施例
onclick="....; return false"
答案 1 :(得分:4)
正如@ephemient在他的评论中提到的那样,javascript
中的onclick
什么也没做,它基本上是一个无用的标签。 javascript
标记中使用前缀<a>
来告诉浏览器以javascript运行以下内容,就像您在浏览器中输入相同的内容一样。您可以在自己浏览器的位置栏中试用,然后查看,只需输入javascript: alert("Hello")
。
总结:
在onclick
中:浏览器希望这是javascript,因此如果您输入javascript:
作为前缀,浏览器会说:'哦,有多古怪,你会贴上标签'。
在<a href
或浏览器位置栏中:浏览器不希望这是javascript,因此如果您输入javascript:
作为前缀,浏览器会说:'哦,我需要运行这是javascript'。