1
<input type="button" onClick="window.open('newstudent.php');"/>

这段代码可以正常工作,没有script标签,为什么?

4

2 回答 2

1

onclick属性的工作方式或多或少类似于这个 JavaSript。

input.onclick = function() {
    // The code from the value.
};

运行 JavaScript不需要script元素存在。有些浏览器甚至愚蠢到可以通过 CSS 执行 JavaScript。

于 2013-07-13T09:44:39.547 回答
1

在元素的内联事件处理程序中,如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)。

于 2013-07-13T09:45:46.340 回答