3

我不编写内联 javascript,但我一直在我使用的代码库中看到并使用它:

<div onClick='javascript:alert("asdf");'></div>

我做了一些测试,发现在我所有的浏览器中,即使是 IE5 模式下的 IE,你都可以更改javascript为任何内容,并且alert会正常触发。

<div onClick='qwerty:alert("asdf");'></div>

那个分隔符是什么?它背后的历史是什么?它曾经需要或有用吗?我似乎记得<script type="text/javascript">实际上并不需要type属性集,这也与此有关吗?我尝试了一些谷歌搜索,但很难搜索。

4

2 回答 2

6

如果页面上的第一个脚本是 VBScript,则它是IE 中仅需要的标签
如果您添加<script type="VBScript"></script>到(较旧?)IE,如果它们是特定于 javascript 并且没有标签 javascript: 告诉 IE切换回来

在这里查看我的答案:JavaScript 伪协议实际上做了什么?

于 2013-03-13T22:40:38.237 回答
2

一般来说,它只是一个标签,类似于:

label:
  statement;

这就是为什么qwerty:alert("asdf")有效,因为它是合法的 Javascript。

IE 确实以不同的方式处理这个问题。您可以在此答案中找到更多详细信息。

相关答案和链接:

于 2013-03-13T22:43:37.957 回答