我偶然发现了一些我以前从未真正见过的奇怪的东西:
javascript:a=a+10;
上面的行似乎是正确的,并且可以愉快地评估(至少在 Firefox 中),就像该javascript:
部分从未存在一样。
虽然我确实理解在DHTML的黑暗时代使用的旧javascript:void(...)
样式的目的,但我只是无法在纯 JavaScript 代码中找出这个前缀的任何有用用法。<a href=".."/>
它有什么特殊含义吗?
我偶然发现了一些我以前从未真正见过的奇怪的东西:
javascript:a=a+10;
上面的行似乎是正确的,并且可以愉快地评估(至少在 Firefox 中),就像该javascript:
部分从未存在一样。
虽然我确实理解在DHTML的黑暗时代使用的旧javascript:void(...)
样式的目的,但我只是无法在纯 JavaScript 代码中找出这个前缀的任何有用用法。<a href=".."/>
它有什么特殊含义吗?
“ javascript:
”是一个标签。它应该被用来识别一个循环,这样你就可以使用 " break javascript;
" 来打破它,但在这里被滥用了。将标签添加到不是循环的语句是无害的,但可能不是一个好主意。
JavaScript 也可以在HTML 应用程序(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>
注意:我知道这是一个极端情况,但它是javascript:
我在创建混合语言 HTA 时遇到的标签的实际用法(在这种情况下我们仍然可以称它为标签吗?)。
我同意它作为标签的无用性,但在某些情况下它仍然有用。例如,您需要从地址栏中执行一个简短的片段或编写一个书签。但在这种情况下,javascript:
将更像是一个伪协议方案。