你把画线的数据传给traintrack.do
document.location.href="traintrack.do?number="+number + ",line=350,100,400,150";然后在traintrack.do的onload检测是否有line参数,有就画线

解决方案 »

  1.   

    不明白,那个数据能那么传吗?什么时候调用drawLine?
      

  2.   

    window.location.href或者 window.open~
      

  3.   

    用ajax静态刷新就可以了。
    function GetXmlHttp(){
          var xmlhttp=false;
          try{
           xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
          }
          catch (e){
           try{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
           }
           catch(e){
            xmlhttp = false;
           }
          }
          if (!xmlhttp && typeof XMLHttpRequest!='undefined'){
           try{
            xmlhttp = new XMLHttpRequest();
           }
           catch (e){
            xmlhttp=false;
           }
          }
          if (!xmlhttp && window.createRequest){
           try{
            xmlhttp = window.createRequest();
           }
           catch (e){
            xmlhttp=false;
           }
          }
          return xmlhttp;
         }
     
      var xmlhttp = GetXmlHttp();       function CheckDate() 
          { 
          xmlhttp.open("POST", "traintrack.do?number="+number, false); 
          xmlhttp.onreadystatechange = updatePage; 
          xmlhttp.send(null);
          } 
          
          function updatePage() { 
          if (xmlhttp.readyState < 4) { 
          loadBar(1); 
          } 
          if (xmlhttp.readyState == 4) { 
         document.getElementById("draw_web").innerHTML=s;
               drawLine(350,100,400,150);          }
    }
    //页面内容装在一层里面“draw_web”

      

  4.   

    不懂啊,没学过ajax,加点注释,感觉和框架差不多
    没有简单点的吗?
      

  5.   

    把list换成下面这样,再加个window.onload
    <script type="text/javascript">
    window.onload = function(){
    var s = window.location.search;
    if(/.*?line=([\d,]*)/i.test(s)){
    var arg = RegExp.$1;
    drawLine.apply(this, arg.split(","));
    }
    };
    function list(number)
    {
    document.location.href="traintrack.do?number="+number+"&line=350,100,400,150";
    //drawLine(350,100,400,150);
    }
    </script>
      

  6.   

    window.onload 加到traintrack.do,这个页面也有drawLine函数吧.?还是当前页面就是traintrack.do?
      

  7.   

    没画出线,下面这个里面两个不能同时实现???
    <A href="${pageContext.request.contextPath}/traintrack.do?number=${t.number}" onClick=javascript:drawLine(350,100,400,150)>${t.number}</A>
      

  8.   


    链接换成这样
    <A href="${pageContext.request.contextPath}/traintrack.do?number=${t.number}&line=350,100,400,150">${t.number} </A>
    再加上window.onload函数
    <script type="text/javascript">
    window.onload = function(){
        var s = window.location.search;
        if(/.*?line=([\d,]*)/i.test(s)){
            var arg = RegExp.$1;
            drawLine.apply(this, arg.split(","));
        }
    };
    </script>
      

  9.   

    复制你的了,.do执行了,线画不出
    window.onload = function(){ 
        var s = window.location.search; 
        if(/.*?line=([\d,]*)/i.test(s)){ 
            var arg = RegExp.$1; 
            drawLine.apply(this, arg.split(",")); 
        } 
    }; 
    都什么意思
      

  10.   

    调试一下,看有没弹出数据来, 这个是根据url的查询参数中是否包含line来确定是否画线你这个页面window.onload只有一个吧.?<script type="text/javascript">
    window.onload = function(){
        var s = window.location.search;
        alert(s);
        if(/.*?line=([\d,]*)/i.test(s)){
            var arg = RegExp.$1;
            alert(arg);
            drawLine.apply(this, arg.split(","));
        }
    };
    </script>
      

  11.   

    我测试是会执行drawLine函数的.
      

  12.   

    恩,只有你写的那个,没有弹出,可能你的.do没有执行吧?
    我得.do执行了后面代码就不执行,以前那个线还会闪一下没了,
    现在都不闪了
      

  13.   

    我用其他按钮调用drawLine是会画出线的,两个一起执行就不行了
      

  14.   

    代码贴出来你看看,后面得点击都是可以画出线的<%@ page language="java"
    import="java.util.*,com.cec.traintrack.entity.Train"
    contentType="text/html;charset=gbk"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
    <jsp:useBean id="Train" class="com.cec.traintrack.entity.Train"
    scope="page" />
    <HTML>
    <HEAD>
    <TITLE>index</TITLE>
    <META http-equiv=Content-Type content="text/html; charset=gb2312">
    <script Language="javascript">



      window.onload = function(){
        var s = window.location.search;
        alert(s);
        if(/.*?line=([\d,]*)/i.test(s)){
            var arg = RegExp.$1;
            alert(arg);
            drawLine.apply(this, arg.split(","));
        }
    };
    function list(number)
    {
        document.location.href="traintrack.do?number="+number+"&line=350,100,400,150";
        //drawLine(350,100,400,150);
    }

    //定义点的绝对坐标
    function drawDot(x,y)
    {
      var dot="<table border='0' cellspacing=0 cellpadding=0><tr><td style='position: absolute; left: "+(x)+"; top: "+(y)+";background-color:#ff66ff' width=2 height=2></td></tr></table>";  return dot;
    }//两点连线
    function drawLine(x1,y1,x2,y2)
    {
      var i;
      var r=Math.floor(Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))); //Math.floor()下舍入(即比它小,但最接近它的整数);Math.sqrt()(返回平方根) //求出直线得长度
      var theta=Math.atan((x2-x1)/(y2-y1));//求出反正切
      var line="";
      if(((y2-y1)<0&&(x2-x1)>0)||((y2-y1)<0&&(x2-x1)<0))
      {
       theta = Math.PI + theta;
      }
      var dx=Math.sin(theta);
      var dy=Math.cos(theta);
      for(i=0;i<r;i++){
        line+=drawDot(x1+i*dx,y1+i*dy);    
      }
      a.innerHTML=line;
    }//动态生成轨迹function lineTrack(x3,y3,x4,y4)
    {
    document.write("---------");
           <%
            ArrayList list = (ArrayList)session.getAttribute("train");
            for(int i=0;i<list.size();i++){
                Train Bean = (Train)list.get(i);
         %>
              var name = '<%=Bean.getNumber()%>'
              document.write(name);
         <%       
            }
         %>
        
      
    }        </script>
    </HEAD>
    <BODY bgColor="#ffffff" onload="init()"> <table width="100%" align="right" border="0" cellpadding="0"
    cellspacing="0" height="50">
    <tr> <td align="left">
    <font color="red" size="+1"><b>火车轨迹系统</b> </font>
    </td>
    <td width="30%" align="right" valign="bottom">
    &nbsp;
    </td>
    </tr>
    <tr>
    <td colspan="3" align="right"> </td>
    </tr>
    </table>
    <hr>
    <br>
    <br>
    <H3 align="left">
    火车信息:
    </H3> <TABLE width="300" border="1" align="left">
    <TR height="25">
    <TD>
    车次
    </TD>
    <TD>
    起点
    </TD>
    <TD>
    终点
    </TD>
    </TR>
    <c:forEach items="${train}" var="t">
    <TR>
    <TD>
    <A href="${pageContext.request.contextPath}/traintrack.do?number=${t.number}&line=350,100,400,150">${t.number}</A>
    </TD>
    <td>
    ${t.start}
    </td>
    <td>
    ${t.end}
    </td>
    </TR>
    </c:forEach>
    </TABLE>
    <BR>
    <br>
    <br>
    <BR>
    <br>
    <br>
    <BR>
    <br>
    <TABLE width="300" border="1" align="left">
    <TR height="25">
    <TD>
    车次
    </TD>
    <TD>
    时间
    </TD>
    <TD>
    车速
    </TD> </TR>
    <c:forEach items="${traintrack}" var="tt">
    <TR>
    <TD>
    <a href="#"
    onClick=javascript:drawLine(${tt.speed},${tt.speed},${tt.speed}+100,${tt.speed}+100)>${tt.number}</A>
    </TD>
    <TD>
    ${tt.date}
    </TD>
    <TD>
    ${tt.speed}
    </TD> </TR>
    </c:forEach>
    <tr>
    <td colspan="3"">
    <input type=button name="confirm" id="confirm" value="查看轨迹"
    display="none" onclick=javascript:drawLine(350,300,500,400)></input> <input type="button" name="onclick" value="查看轨迹"
    onClick=javascript:drawLine(350,300,500,400)></input>
    </td>
    </tr>
    </TABLE>
    <input type="button" name="onclick1" value="显示"
    onClick=javascript:lineTrack(350,300,500,400)></input>
    <div id=a></div> </BODY>
    </HTML>
      

  15.   

    你是说用button试试<A href="${pageContext.request.contextPath}/traintrack.do?number=${t.number}&line=350,100,400,150">
    我试试
      

  16.   

    你是说用onclock吧,我试了,效果一样,只执行前面的,愁~~
      

  17.   

    我是说点击下面这个
    <A href="${pageContext.request.contextPath}/traintrack.do?number=${t.number}&line=350,100,400,150">${t.number}</A>链接后的html源代码, 右键->查看源代码 这里的. 你这个是jsp的,有服务器代码,不好调试.
      

  18.   

    大哥还在吗???
    代码如下
    <HTML>
    <HEAD>
    <TITLE>index</TITLE>
    <META http-equiv=Content-Type content="text/html; charset=gb2312">
    <script Language="javascript">



      window.onload = function(){
        var s = window.location.search;
        alert(s);
        if(/.*?line=([\d,]*)/i.test(s)){
            var arg = RegExp.$1;
            alert(arg);
            drawLine.apply(this, arg.split(","));
        }
    };
    function list(number)
    {
        document.location.href="traintrack.do?number="+number+"&line=350,100,400,150";
        //drawLine(350,100,400,150);
    }

    //定义点的绝对坐标
    function drawDot(x,y)
    {
      var dot="<table border='0' cellspacing=0 cellpadding=0><tr><td style='position: absolute; left: "+(x)+"; top: "+(y)+";background-color:#ff66ff' width=2 height=2></td></tr></table>";  return dot;
    }//两点连线
    function drawLine(x1,y1,x2,y2)
    {
      var i;
      var r=Math.floor(Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))); //Math.floor()下舍入(即比它小,但最接近它的整数);Math.sqrt()(返回平方根) //求出直线得长度
      var theta=Math.atan((x2-x1)/(y2-y1));//求出反正切
      var line="";
      if(((y2-y1)<0&&(x2-x1)>0)||((y2-y1)<0&&(x2-x1)<0))
      {
       theta = Math.PI + theta;
      }
      var dx=Math.sin(theta);
      var dy=Math.cos(theta);
      for(i=0;i<r;i++){
        line+=drawDot(x1+i*dx,y1+i*dy);    
      }
      a.innerHTML=line;
    }//动态生成轨迹function lineTrack(x3,y3,x4,y4)
    {
    document.write("---------");
           
              var name = 'k1'
              document.write(name);
         
              var name = 'k601'
              document.write(name);
         
              var name = 'k8'
              document.write(name);
         
        
      
    }        </script>
    </HEAD>
    <BODY bgColor="#ffffff" onload="init()"> <table width="100%" align="right" border="0" cellpadding="0"
    cellspacing="0" height="50">
    <tr> <td align="left">
    <font color="red" size="+1"><b>火车轨迹系统</b> </font>
    </td>
    <td width="30%" align="right" valign="bottom">
    &nbsp;
    </td>
    </tr>
    <tr>
    <td colspan="3" align="right"> </td>
    </tr>
    </table>
    <hr>
    <br>
    <br>
    <H3 align="left">
    火车信息:
    </H3> <TABLE width="300" border="1" align="left">
    <TR height="25">
    <TD>
    车次
    </TD>
    <TD>
    起点
    </TD>
    <TD>
    终点
    </TD>
    </TR>

    <TR>
    <TD>
    <A  href="#" onclick=javascript:list("k1")>k1</A>
    </TD>
    <td>
    hangzhou
    </td>
    <td>
    shanghai
    </td>
    </TR>

    <TR>
    <TD>
    <A  href="#" onclick=javascript:list("k601")>k601</A>
    </TD>
    <td>
    beijing
    </td>
    <td>
    hangzhou
    </td>
    </TR>

    <TR>
    <TD>
    <A  href="#" onclick=javascript:list("k8")>k8</A>
    </TD>
    <td>
    beijing
    </td>
    <td>
    tianjin
    </td>
    </TR>

    </TABLE>
    <BR>
    <br>
    <br>
    <BR>
    <br>
    <br>
    <BR>
    <br>
    <TABLE width="300" border="1" align="left">
    <TR height="25">
    <TD>
    车次
    </TD>
    <TD>
    时间
    </TD>
    <TD>
    车速
    </TD> </TR>

    <TR>
    <TD>
    <a href="#"
    onClick=javascript:drawLine(280,280,280+100,280+100)>k601</A>
    </TD>
    <TD>
    2009-04-12 19:01:13.0
    </TD>
    <TD>
    280
    </TD> </TR>

    <TR>
    <TD>
    <a href="#"
    onClick=javascript:drawLine(260,260,260+100,260+100)>k601</A>
    </TD>
    <TD>
    2009-04-12 19:01:29.0
    </TD>
    <TD>
    260
    </TD> </TR>

    <tr>
    <td colspan="3"">
    <input type=button name="confirm" id="confirm" value="查看轨迹"
    display="none" onclick=javascript:drawLine(350,300,500,400)></input> <input type="button" name="onclick" value="查看轨迹"
    onClick=javascript:drawLine(350,300,500,400)></input>
    </td>
    </tr>
    </TABLE>
    <input type="button" name="onclick1" value="显示"
    onClick=javascript:lineTrack(350,300,500,400)></input>
    <div id=a></div> </BODY>
    </HTML>
      

  19.   

    地址栏:
    http://127.0.0.1:8080/traintracks2/traintrack.do?number=k601&line=350,100,400,150
    但画线函数还是没执行
      

  20.   

    你body上有个onload 把这个去掉
      

  21.   

    再把window.onload 改成下面这样,开始没做类型转换
    window.onload = function(){
        var s = window.location.search;
        if(/.*?line=([\d,]*)/i.test(s)){
            var arg = RegExp.$1.split(",");
            drawLine(parseInt(arg[0]), parseInt(arg[1]), parseInt(arg[2]), parseInt(arg[3]));
        }
    };