javascript - onClick ="javascript: function(' 值')'"和onClick ="function(' 值');”有什么区别?

标签 javascript function function-calls

<分区>

以下有什么区别?

  1. onClick="javascript: function('value');"
  2. onClick="function('value');"

什么时候在函数调用之前使用 javascript:,为什么?

我可以在不使用 javascript: 前缀的情况下调用该函数吗?

请帮助我理解其中的区别。

最佳答案

在元素的内联事件处理程序中,如 onclick , onchange , onsubmit等,您不需要需要 javascript:前缀 - 您经常看到它的原因是人们将它与 href 混淆了我在下面解释的语法。它不会导致错误 - 我相信它被解释为 label - 但这是不必要的。

不管你是想调用一个函数还是运行一个“简单”的 JS 语句,无论哪种方式都不要包含 javascript: - 也就是说,所有这三个都是有效的:

onclick="doSomething('some val');"
onclick="return false;"
onclick="doSomething(); doSomethingElse(); return false;"

如果您使用内联事件属性,请不要使用 javascript:前缀。

(我说“如果您正在使用内联事件属性”,因为这种做法确实过时了:最好在脚本 block 中使用 JS 分配事件处理程序。)

您只需要 javascript:当你想从 <a> 运行 JavaScript 时添加前缀元素的 href像这样的属性:

<a href="javascript: someFunc();">Whatever</a>

那是因为浏览器通常期望 href包含一个 URI,所以 javascript:前缀告诉它期待 JS 代码。但是,我不建议这样做,因为该页面不适用于禁用 JS 的人。最好包括 href将用户定向到一个页面,告诉他们启用 JS,并包含 onclick执行 JS 功能:

<a href="/enableJS.html" onclick="doSomething(); return false;">Whatever</a>

这样,无论用户是否启用了 JS,链接都会为用户提供一些有用的东西。 return false在点击处理程序的末尾阻止点击的默认行为(导航到指定的 URL)。

关于javascript - onClick ="javascript: function(' 值')'"和onClick ="function(' 值');”有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11823290/

相关文章:

javascript - 希伯来语不显示 $http.get

javascript - 需要 JavaScript/Regex 来挑选和处理 URL

javascript - 为什么当我在参数传递过程中增加函数值时,函数却收到原始值?

Java 面向对象的类之间的函数调用

javascript - jquery 使实时过滤器与快速击键保持一致

javascript - 相当于匹配子文档的捕获组

javascript - 文字对象和函数构造函数

php - PHP-在MySQL函数中使用HTML表单函数中的变量在另一个函数中查询

c++ - Doxygen 用调用图记录一个类中的所有函数?

C++ 函数调用与堆栈上推送/弹出的新 block