是否可以在标记中定义一个函数,并从<script>标记</script>中调用它

时间:2014-04-03 11:18:03

标签: javascript jquery html

我是HTML和Javascript的新手,我有一个奇怪的疑问

是否可以在&#34; body&#34;中定义一个功能。 html的标签,并将其称为&#34;脚本&#34;标签

直到现在我正在尝试这个...

<!DOCTYPE html>
<html>
<head>
<script>
   myFunction()
</script>
</head>

<body> 
function myFunction()
{
    alert("Hello World!");
}

</body>
</html>

5 个答案:

答案 0 :(得分:4)

不可能。浏览器只能识别<script>标记内的javascript。

答案 1 :(得分:0)

它不起作用,试试这个,

<html>    
<body> 
<script>// don't miss script tags for javscript code
   function myFunction()
   {
       alert("Hello World!");
   }
</script>
<script>
   myFunction(); // call if you have defined function earlier
</script>

</body>
</html>

答案 2 :(得分:0)

IMHO:

<html>
<head>
<script>
function myFunction()
{
    alert("Hello World!");
}
myFunction();
</script>
</head>

<body>
</body>
</html>

或者你可以使用body Onload。

答案 3 :(得分:0)

没有你不能这样做......你应该把js函数放在脚本标签中..... 你可以这样做

<!DOCTYPE html>
<html>
<head>
<script>
   myFunction();
function myFunction()
{
    alert("Hello World!");
}
</script>
</head>

<body> 


</body>
</html>

答案 4 :(得分:0)

<html>
<head>

</head>
<body> 
<script>
function myFunction()
{
    alert("Hello World!");
}
   myFunction()
</script>

</body>
</html>

我同意Rohan,但只是为了检查我是否删除了第二对脚本标签,并在同一个脚本块中调用该函数,因为它已经定义并且它有效但这通常不是事情的完成方式,这通常不是使用嵌入式JavaScript(js) 进行一些额外的研究以找到嵌入式js的最佳/最佳位置似乎位于/ body(关闭体)标签之前的网页底部<​​/ p>

以下是雅虎“加速您的网站”指南的链接: Yahoo! Developer Network: Best Practices for Speeding Up Your Web Site

这里是引用嵌入式js的页面中的文本:

  

将脚本放在底部

     

标签:javascript

     

脚本引起的问题是它们会阻止并行下载。 HTTP / 1.1规范建议浏览器每个主机名并行下载不超过两个组件。如果您从多个主机名提供图像,则可以并行执行两次以上的下载。但是,在下载脚本时,即使在不同的主机名上,浏览器也不会启动任何其他下载。

     

在某些情况下,将脚本移到底部并不容易。例如,如果脚本使用document.write插入页面内容的一部分,则无法在页面中向下移动。可能还存在范围问题。在许多情况下,有办法解决这些问题。

     

经常出现的另一个建议是使用延迟脚本。 DEFER属性指示脚本不包含document.write,并且是浏览器可以继续呈现的线索。不幸的是,Firefox不支持DEFER属性。在Internet Explorer中,脚本可能会延迟,但不是所需的。如果可以延迟脚本,也可以将其移动到页面底部。这将使您的网页加载速度更快。

此外,如果您访问该网站并单击JavaScript标记,您将获得一整套优化和提示 - 请参阅图像!

Screenshot of Yahoo Developer Network showing JavaScript optimisations