为什么浏览器在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”属性一样。