为什么浏览器在onclick的值中使用其他单词替代“javascript”时会抛出错误?

我inheritance了一个网站,刚刚遇到这种好奇心:

<a href="/delete" onClick="jamoscript:return confirm('Do you really want to do that?');">Delete all</a> 

我可以显示包含它的页面,并单击链接以获取确认对话框,与我将“ jamoscript ”更改为“ javascript ”时完全相同。 Firebug控制台中不会显示任何诊断信息,可以在加载页面时或单击链接时显示。 嗨? 使用谷歌search不会引起任何有趣的事情。

有人可以解释这种行为吗?

“onclick”属性的string值被认为是简单的JavaScript代码。 JavaScript包含标签语句的规定,所以代码是带有“jamoscript”标签的return语句。 换句话说,这个:

 jamoscript: return confirm("Do you really want to hurt me?"); 

是完全合法的JavaScript。 标签用得不多,所以不熟悉。

“javascript:”前缀唯一的上下文就是预期的URL,就像<a>标签的“href”属性一样。