我偶然发现了一件我以前从未见过的奇怪事情:
javascript:a=a+10;
上面的代码看起来是正确的,并且能够正常运行(至少在Firefox中),就像javascript:
部分从未存在一样。
虽然我理解旧时代DHTML中使用的旧式<a href=".."/>
格式的javascript:void(...)
的用途,但我仍然无法想象这个前缀在普通JavaScript代码中有任何有用的用途。
它有特殊含义吗?
我偶然发现了一件我以前从未见过的奇怪事情:
javascript:a=a+10;
上面的代码看起来是正确的,并且能够正常运行(至少在Firefox中),就像javascript:
部分从未存在一样。
虽然我理解旧时代DHTML中使用的旧式<a href=".."/>
格式的javascript:void(...)
的用途,但我仍然无法想象这个前缀在普通JavaScript代码中有任何有用的用途。
它有特殊含义吗?
OUTER: while (1) { INNER: while (1) { break OUTER; }}
- BRPocock<SCRIPT LANGUAGE='VBScript'> MsgBox 'Hi!'</SCRIPT>
<a id="myLink" href="#" onclick="MyFunction();return false;">Click me!</a>
您可以通过明确将语言设置为JavaScript来解决此问题,方法如下:
<a id="myLink" href="#" onclick="javascript:alert('Javascript Executed!');return false;">Click me for Javascript!</a>
或者在VBScript中通过
<a id="myLink" href="#" onclick='vbscript:msgbox "VBScript Executed!"'>Click me for VBScript!</a>
javascript:
标签的情况(在这种情况下我们仍然可以称其为标签吗?)。我同意它作为标签的无用性,但在某些情况下仍然有用。例如,您需要从地址栏执行短代码片段或编写书签脚本。但在这种情况下,javascript:
更像是伪协议方案。
javascript:
会让浏览器将URL剩余部分作为JavaScript执行。而在JavaScript代码行开头的javascript:
是一个名为"javascript
"的标签,就像foobar:
是名为"foobar
"的标签一样。它们之间完全没有关联,并出现在不同的上下文中,但它们看起来很相似。参考链接:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label - Peeja
javascript:
,任何东西都可以在后面加上 ":" 作为标签。在这里查看一个打破标签的小例子:http://jsfiddle.net/6yLA6/。 - Shadow The Spring Wizard