为什么我们在调用HTML中的函数之前添加“javascript:”?

时间:2014-05-17 21:06:40

标签: javascript html

我有这段代码:

<html>
<head>
    <script>
      function myFunction() {
        document.getElementById("demo").innerHTML="Hello World";
      }
    </script>
</head>
<body>
    <button onclick="javascript:myFunction()">Click me</button>

    <p id="demo"></p>

</body>
</html>

如果我按

更改<button onclick="javascript:myFunction()">Click me</button>
 <button onclick="myFunction()">Click me</button>

我的代码正常运行。

这是onclick="javascript:myFunction()"onclick="myFunction()"之间的差异吗?

1 个答案:

答案 0 :(得分:7)

那是javascript:伪协议,已经丢失了。当您在URL中使用Javascript时使用它,例如:

<a href="javascript:alert('hi')">Hi</a>

事件属性不支持:javascript协议,因此它不起作用。但是,它恰好与Javascript中的标签成为相同的语法,因此尽管协议位于错误的位置,代码仍然可以正常工作。

所以,总而言之,:javascript不应该存在,而且只是幸运的是它仍然会在它出现时起作用。