JavaScript伪协议实际上做什么?
换句话说,它们之间的区别是什么JavaScript伪协议实际上做什么?,javascript,Javascript,换句话说,它们之间的区别是什么 onclick="myFunction()" 及 正如@ephemient在他的评论中提到的,onclick中的javascript没有任何作用,它基本上是一个无用的标签。前缀javascript用在标记中,告诉浏览器以javascript的形式运行以下内容,就像您在浏览器中输入了相同的内容一样。您可以在自己浏览器的位置栏中尝试,只需输入javascript:alert(“Hello”) 总结如下: 在onclick:浏览器希望这是javascript,因此如果
onclick="myFunction()"
及
正如@ephemient在他的评论中提到的,
onclick
中的javascript
没有任何作用,它基本上是一个无用的标签。前缀javascript
用在
标记中,告诉浏览器以javascript的形式运行以下内容,就像您在浏览器中输入了相同的内容一样。您可以在自己浏览器的位置栏中尝试,只需输入javascript:alert(“Hello”)
总结如下:
在onclick
:浏览器希望这是javascript,因此如果您输入javascript:
作为前缀,浏览器会说:“哦,多么奇怪,您放了一个标签。”
在
中,事件处理程序中的JavaScript:
类型/标签/前缀(找不到它的实际名称)仅用于一个目的:
在IE中,IFF页面上的第一个脚本是而不是JavaScript,页面其余部分的内联JavaScript已经(仍然有?)具有JavaScript:
前缀
不要将其与href中的javascript:
协议混淆(顺便说一句,这也是应该避免的)href=“javascript:…”
仅在区域标记中的旧Netscape中需要。当您看到href=“javascript:void(0)”
时,需要有人使用onclick=“..;return false”
,除非他们将其放在那里以提醒用户该链接是由javascript驱动的。如果JS关闭,它将失败
我从msdn中查找了官方文档,但以下是支持我的讨论:
Internet Explorer默认为第一个脚本元素的语言
它解析。因此,如果第一个脚本元素是javascript,则不应
需要在事件处理程序中指定“javascript:”
您必须告诉IE您正在使用VBS和JScript,否则
假设在此实例中所有函数都是VBS。或者添加一个
(空?)JavaScript脚本元素[在页面顶部]或使用
一旦改变。
onchange=“jscript:location.hash=this[this.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>
'此处的某些vbscript强制使用默认语言
'页的名称为VBScript,而不是jScript/JavaScript
.
.
.
也许你的意思是
与
?把javascript:
放在onclick属性中从来没有做过任何有用的事情。哇,自从我上次使用onclick
属性以来已经有很长时间了。不引人注目的javascript让您可以在javascript中的元素上绑定事件,而且更具可组合性……javascript(TM)的大写疯狂开始了。@Ephmient请查看我的答案,了解事件句柄中javascript:
前缀的原因。它是“就像您在浏览器中输入了相同的内容一样”我不同意。如果你将javascript前缀/标签粘贴到浏览器中,它会神奇地变成一个协议,但这纯粹是一个副作用,与onclick无关。这正是我要说的,我更新了答案,试图让它更清楚,因为显然我没有做得很好。哇,我没有意识到IE中的这个奇怪之处!很高兴没有遇到它。
<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>