换句话说,两者之间的区别是什么
onclick="myFunction()"和
onclick="JavaScript:myFunction()"发布于 2012-04-09 13:09:55
事件处理程序中的JavaScript:类型/标签/前缀(找不到其实际名称)仅用于一个用途的:
在IE中,IFF页面上的第一个脚本是而不是 JavaScript,内联JavaScript在页面的其余部分有(还有吗?)让javascript:给它加上前缀。
不要将它与href中的javascript:协议混淆(顺便说一句,这也应该避免)。只有在区域标签中的旧网络环境中才需要href="javascript:..."。当你看到href="javascript:void(0)"时,有些人需要使用onclick="....; return false",除非他们把它放在那里提醒用户这个链接是由javascript驱动的。如果关闭JS,则会失败。
我寻找了来自msdn的官方文档,但以下是支持我的讨论:
Calling VBScript from Javascript
Internet Explorer默认使用它分析的第一个脚本元素的语言。因此,如果第一个script元素是javascript,那么您不需要在事件处理程序中指定"javascript:“。
http://www.webdeveloper.com/forum/archive/index.php/t-135462.html
在这种情况下,你必须告诉IE你正在使用VBS和JScript,否则假设所有的函数都是VBS。或者添加一个(空?)JavaScript脚本元素,或者在onchange上使用jscript: protocol。onchange="jscript:location.hash=thisthis.selectedIndex.value;“
示例
<html>
<head>
<script language="VBScript">
' some vbscript here forces the default language
' of the page to be VBScript and not jScript/JavaScript
</script>
</head>
<body onload="javascript:alert('I am inline in an event handler - boo me')">
.
.
<a href="..." onclick="javascript:alert('and so am I'); return false">Click</a>
.
<a href="javascript:alert('javascript: PROTOCOL is NOT the same (but avoid it too)')">
Click
</a>
</body>
</html> 发布于 2012-04-09 12:18:07
正如@ephemient在他的评论中提到的那样,onclick中的javascript什么也不做,它基本上是一个无用的标签。在<a>标记中使用前缀javascript来告诉浏览器将以下代码作为javascript运行,就像您在浏览器中输入了相同的内容一样。您可以在自己浏览器的地址栏中尝试,只需输入javascript: alert("Hello")即可。
总结一下:
在onclick中:浏览器希望这是javascript,所以如果你输入javascript:作为前缀,浏览器会说:‘哦,多么奇怪,你放了一个标签’。
在<a href或浏览器地址栏中:浏览器不希望这是javascript,所以如果你输入javascript:作为前缀,浏览器会说:‘哦,我需要把它作为javascript运行’。
https://stackoverflow.com/questions/10068781
复制相似问题