为什么我需要在函数名之前写“javascript:”?

时间:2012-01-19 13:32:03

标签: javascript

如果我想使用像“function name()”这样的外部javascript函数,请参阅下面的示例:

<from onSubmit="javascript: funtionname()" >
</form>

为什么我有时需要在函数名之前编写javascript:

4 个答案:

答案 0 :(得分:3)

在处理程序(onclickonchange等)中,您不必使用前缀。对于这些,Javascript已经被预期,并且前缀被解释为标签并且没有效果。

例如,如果您想在href属性中执行Javascript,则需要前缀“javascript:” 。否则,该值将被解释为URL。

一般而言,应该避免这种做法,因为它与unobtrusive Javascript政策相矛盾。

答案 1 :(得分:2)

javascript:表示法是一种URL方案,可以在任何需要URL的地方使用。据我所知,将URL传递给事件处理程序是不正确的(至少根据HTML5规范),尽管浏览器似乎支持它。您应该指定一个有效的函数或null作为事件处理程序。浏览器可能会将此javascript前缀解释为标签,但在技术上可能不允许这样做。

答案 2 :(得分:1)

你没有。

当您仅使用url类型标记(例如:javascript:href)时,您需要编写src,以指定字符串需要评估javascript代码。< / p>

示例:

<a href="javascript: doSomething();">
    My link is a javascript function doSomething()
</a>

你可以:

<form onSubmit="doSomething();">
    When submit the form, will ran doSomething, 
    if returns false will cancel the form submission
</form>

答案 3 :(得分:0)

无需在处理程序中执行此操作。它仅用作类似URL的方法中的协议,例如:

<a href="javascript:funtionname()">Click here</a>