你把画线的数据传给traintrack.do
document.location.href="traintrack.do?number="+number + ",line=350,100,400,150";然后在traintrack.do的onload检测是否有line参数,有就画线
document.location.href="traintrack.do?number="+number + ",line=350,100,400,150";然后在traintrack.do的onload检测是否有line参数,有就画线
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”
没有简单点的吗?
<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>
<A href="${pageContext.request.contextPath}/traintrack.do?number=${t.number}" onClick=javascript:drawLine(350,100,400,150)>${t.number}</A>
链接换成这样
<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>
window.onload = function(){
var s = window.location.search;
if(/.*?line=([\d,]*)/i.test(s)){
var arg = RegExp.$1;
drawLine.apply(this, arg.split(","));
}
};
都什么意思
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>
我得.do执行了后面代码就不执行,以前那个线还会闪一下没了,
现在都不闪了
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">
</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>
我试试
<A href="${pageContext.request.contextPath}/traintrack.do?number=${t.number}&line=350,100,400,150">${t.number}</A>链接后的html源代码, 右键->查看源代码 这里的. 你这个是jsp的,有服务器代码,不好调试.
代码如下
<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">
</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>
http://127.0.0.1:8080/traintracks2/traintrack.do?number=k601&line=350,100,400,150
但画线函数还是没执行
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]));
}
};