<input type="button" onClick="window.open('newstudent.php');"/>
这段代码可以正常工作,没有script
标签,为什么?
<input type="button" onClick="window.open('newstudent.php');"/>
这段代码可以正常工作,没有script
标签,为什么?
该onclick
属性的工作方式或多或少类似于这个 JavaSript。
input.onclick = function() {
// The code from the value.
};
运行 JavaScript不需要script
元素存在。有些浏览器甚至愚蠢到可以通过 CSS 执行 JavaScript。
在元素的内联事件处理程序中,如onclick
, onchange
,onsubmit
等,您不需要前缀 - 您经常看到它的原因是因为人们将它与我在下面解释javascript:
的语法混淆了。href
它不会导致错误 - 我相信它被解释为标签- 但它是不必要的。
无论您是要调用函数还是运行“简单” JS 语句都没有关系,无论哪种方式都不要包含javascript:
- 也就是说,所有这三个都是有效的:
onclick="doSomething('some val');"
onclick="return false;"
onclick="doSomething(); doSomethingElse(); return false;"
如果您使用内联事件属性,请不要使用javascript:
前缀。
(我说“如果您使用的是内联事件属性”,因为这种做法确实已经过时:最好在脚本块中使用 JS 分配事件处理程序。)
javascript:
当您想从<a>
元素的href
属性运行 JavaScript 时,您只需要前缀,如下所示:
<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)。