<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
    <script src="http://api.map.baidu.com/api?key=46ce9d0614bf7aefe0ba562f8cf87194&v=1.0&services=false" type="text/javascript"></script>
    
<script type="text/javascript">
    var map = new BMap.Map("container");            // 创建Map实例
    var point = new BMap.Point(116.404, 39.915);    // 创建点坐标
    map.centerAndZoom(point, 15);                     // 初始化地图,设置中心点坐标和地图级别。
</script></head>
<body>
    <form id="form1" runat="server">
    <div style="height: 346px; width: 643px" id="container">
    
    </div>
    </form>
</body>
</html>
这个是aspx里写的,<script type="text/javascript">
    var map = new BMap.Map("container");            // 创建Map实例
    var point = new BMap.Point(116.404, 39.915);    // 创建点坐标
    map.centerAndZoom(point, 15);                     // 初始化地图,设置中心点坐标和地图级别。
</script>
这一段写在head里出错,写在最后就没问题<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
    <script src="http://api.map.baidu.com/api?key=46ce9d0614bf7aefe0ba562f8cf87194&v=1.0&services=false" type="text/javascript"></script>
    
</head>
<body>
    <form id="form1" runat="server">
    <div style="height: 346px; width: 643px" id="container">
    
    </div>
    </form>
</body>
</html><script type="text/javascript">
    var map = new BMap.Map("container");            // 创建Map实例
    var point = new BMap.Point(116.404, 39.915);    // 创建点坐标
    map.centerAndZoom(point, 15);                     // 初始化地图,设置中心点坐标和地图级别。
</script>但例子里,写在哪都行,例子是个html的页面
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>Hello, World</title>
<script src="http://api.map.baidu.com/api?key=46ce9d0614bf7aefe0ba562f8cf87194&v=1.0&services=false" type="text/javascript"></script>
<script type="text/javascript">
    var map = new BMap.Map("container");            // 创建Map实例
    var point = new BMap.Point(116.404, 39.915);    // 创建点坐标
    map.centerAndZoom(point, 15);                     // 初始化地图,设置中心点坐标和地图级别。
</script>
</head>
<body>
<div style="width:520px;height:340px;border:1px solid gray" id="container"></div>
</body>
</html>

解决方案 »

  1.   

    script代码写在head里与写在最后的区别
    ========
    区别在页面加载顺序
    写在head里,页面加载时,先加载js代码 再加载from里内容
    写在最后 ,页面加载时先加载页面内容再加载js代码
      

  2.   


    那例子给的代码为什么写在head也行,那时候界面容器不是也没显示出来吗?
      

  3.   

    .net的报错能力强啊。var map = new BMap.Map("container");            // 创建Map实例页面呈现的时候,从上到下,这一步 页面中并没有container 这个div。
      

  4.   

    注意在调用此构造函数时应确保容器元素已经添加到地图上。 #2 正解.写在前面.内容还没加载.所以script会出错
      

  5.   

    js若写在html最前面,那么js里如果由操作html控件的代码,就会报错找不到该控件,因为加载js时还没有加载html。C#代码,与代理挂接的方法写在哪都无所谓,例如PageLoad
      

  6.   

    执行HTML也有先后顺序的。懂了吗?
      

  7.   

    执行HTML也有先后顺序的 
      

  8.   


    如果不想写到最后
    也可以
    <script type="text/javascript" defer>加个它