代码(而不是URL)中的“javascript:”有什么意义?

时间:2013-09-02 09:28:54

标签: javascript

我偶然发现了一些我以前从未见过的奇怪的东西:

javascript:a=a+10;

上面的一行似乎是正确的并且很愉快地评估(至少在Firefox中),就像javascript:部分从未存在一样。

虽然我确实理解在DHTML的黑暗时代使用的旧javascript:void(...)样式<a href=".."/>的目的,但我无法弄清楚这个前缀在平原中的任何有用用法JavaScript代码。

它有一些特殊含义吗?

4 个答案:

答案 0 :(得分:97)

javascript:”是label。它应该用于识别循环,以便您可以使用“break javascript;”来突破它,但在这里被滥用。它是无害的,但是对于不是循环的语句添加标签可能不是一个好主意。

答案 1 :(得分:52)

它在语法上是有效的(它是label)但没用。由于人们在不理解的情况下复制/粘贴代码而导致cargo culting

答案 2 :(得分:12)

JavaScript也可以在HTML Application(HTA)的网页中使用。在HTA中,可以使用VBScript和JavaScript的混合。在应用程序中使用脚本时,如下所示,脚本语言将自动设置为VBScript。

<SCRIPT LANGUAGE='VBScript'> MsgBox 'Hi!'</SCRIPT>

因此,带有JavaScript onclick事件的元素(如下所示)将导致错误。

<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>

注意:我知道这是一个极端情况,但它是我在创建混合语言HTA时遇到的javascript:标签的实际用法(我们还能称它为此上下文中的标签吗?)。

答案 3 :(得分:-2)

我同意它作为标签的无用性,但在某些情况下它仍然有用。例如,您需要从地址栏执行一个简短的片段或写一个书签。但在这种情况下,javascript:将更像伪协议方案。