Javascript-in<;头>;在<;中的脚本之前执行;车身>;

Javascript-in<;头>;在<;中的脚本之前执行;车身>;,javascript,Javascript,我正在尝试编写一点javascript,但在这方面几乎没有经验 我曾读过一些帖子,其中指出,内部的块肯定会先于内部的块运行,但我看到了完全相反的行为。有人能解释一下我为什么看到这个吗 这是我的简单测试页面: <html> <head> <script type="text/javascript"> var test_msg; function initMap() { test_msg = "This is a test"

我正在尝试编写一点javascript,但在这方面几乎没有经验

我曾读过一些帖子,其中指出,内部的块肯定会先于内部的块运行,但我看到了完全相反的行为。有人能解释一下我为什么看到这个吗

这是我的简单测试页面:

<html>
  <head>
    <script type="text/javascript">
    var test_msg;
    function initMap() {
      test_msg = "This is a test";
      window.alert('initMap: ' + test_msg);
    }
    </script>
  </head>
  <body onload="initMap()">
    <script type="text/javascript">
      window.alert('blargo: ' + test_msg);
    </script>
  </body>
</html>

var试验;
函数initMap(){
test_msg=“这是一项测试”;
window.alert('initMap:'+测试消息);
}
window.alert('blargo:'+测试消息);
当我加载它(在Firefox或IE中)时,我会看到两个消息框:#1:“blargo:undefined”和#2:“initMap:这是一个测试”,表明后面的脚本是先执行的

谢谢你的帮助,

gs.

问题是,当加载主体时(
body onload='…'
)会调用函数
initMap
),但只有在加载并执行最后一个脚本时,主体才会被完全加载。
加载javascript和执行javascript是一种混淆。

问题是,在加载主体(
body onload='…'
)时会调用函数
initMap
),但只有在加载并执行最后一个脚本时才会完全加载主体。
您正在混淆加载javascript和执行它。

您的第一个脚本将首先执行。。。但它所做的只是创建函数和变量

然后在此处调用函数:

<body onload="initMap()">

正在首先执行您的第一个脚本。。。但它所做的只是创建函数和变量

然后在此处调用函数:

<body onload="initMap()">

如果您想立即执行head块中的函数,只需在其定义下调用它。 如果函数使用一些控制值,则需要将其包装在document.ready块中

理想情况下,在CMS场景中,标题中立即调用的函数将用于一般初始化,而正文中的函数应该有一个包装器作为document.ready来初始化所有控件

<head>
<script> 
function Initialize() { doSomething }  

// Now call this explictly
Initialize();
</script>
</head>
<body>

... body elements

<script> 
$(document).ready(function() { 
     handle body's element as desired using various functions
}
</script>

</body>

函数初始化(){doSomething}
//现在明确地称之为
初始化();
... 身体元素
$(文档).ready(函数(){
使用各种功能根据需要处理主体元素
}

如果您希望头块中的函数立即执行,只需在其定义下调用它即可。 如果函数使用一些控制值,则需要将其包装在document.ready块中

理想情况下,在CMS场景中,标题中立即调用的函数将用于一般初始化,而正文中的函数应该有一个包装器作为document.ready来初始化所有控件

<head>
<script> 
function Initialize() { doSomething }  

// Now call this explictly
Initialize();
</script>
</head>
<body>

... body elements

<script> 
$(document).ready(function() { 
     handle body's element as desired using various functions
}
</script>

</body>

函数初始化(){doSomething}
//现在明确地称之为
初始化();
…身体元素
$(文档).ready(函数(){
使用各种功能根据需要处理主体元素
}

谢谢大家的快速回复。之前的回复似乎很不直观,但现在我明白了。谢谢大家的快速回复。之前的回复似乎很不直观,但现在我明白了。这…没有回答问题…并抛出一个引用错误,因为
$
未声明。您使用jQuery吗?$来自那里。如果不是,则在tag@Nitan-提出问题的人(4年前!)不是。这…没有回答问题…并抛出一个引用错误,因为
$
未声明。是否使用jQuery?$来自那里。如果不是,则在tag@Nitan-问这个问题的人(4年前!)不是。