JSP有没有办法能实现JS的window.open功能?

gwsr 2003-06-16 10:51:37
还有window.open中那些乱七八糟的参数
...全文
654 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
AHUA1001 2003-06-18
  • 打赏
  • 举报
回复
你是不是想调用WINDOWS的底层命令啊?一般的地方都不介绍,怕有人做坏事吧!^_^
gwsr 2003-06-18
  • 打赏
  • 举报
回复
各位还有没有什么高见?请帮我
jeskee 2003-06-18
  • 打赏
  • 举报
回复
if (parent.leftFrame.form1.fun.value=="new")//如果是新建,则不需要判断点击点的坐标值
window.open ('../../new.jsp?x1=<%=x%>&y1=<%=y%>&city=huining', 'newwindow', 'height=385, width=570, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no')
}
//这么写肯定不能得到最新的坐标了,每次服务器处理时得到的总是上次提交的值//
还是用js在提交前把坐标的值改为当前坐标值后再加到参数中提交给服务器处理
//做法
//在js中定义
var str="";
//html中<form>中定义两个隐藏文本
<input type="hidden" name="x">
<input type="hidden" name="y">
//当点击事件发生时js中
function document_onclick() {
ff.x.value=window.event.clientX;
ff.y.value=window.event.clientY;
}

//-->
</SCRIPT>
<SCRIPT LANGUAGE=javascript FOR=document EVENT=onclick>
<!--
document_onclick()
//-->
</SCRIPT>
在调用DealWith()时
function DealWith()
{
var str='../../new.jsp?x1='+ff.x.value+'&y1='+ff.y.value+'&city=huining';

if (parent.leftFrame.form1.fun.value=="new")//如果是新建,则不需要判断点击点的坐标值
window.open (str, 'newwindow', 'height=385, width=570, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no')

}
这样应该可以解决吧
gwsr 2003-06-18
  • 打赏
  • 举报
回复
up一下!
gwsr 2003-06-18
  • 打赏
  • 举报
回复
AHUA1001(99) 误会我也!
gks_cn 2003-06-17
  • 打赏
  • 举报
回复
用jsp做,最总都要输出下面的代码,不染实现不了。
<script LANUGAGE="JavaScript">
<!--
function pop(pageurl) {
var
popwin=window.open(pageurl,"popWin","scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=yes,width=580,height=400");
return false;
}
//-->
</script>
gks_cn 2003-06-17
  • 打赏
  • 举报
回复
拿只有做一个类,风状方法了
class win{
int wHeight;
int wWidth;
public setWinName(String name){
}
public setHeight(int h){
}
public setWidth(int w){
}
public openWin(){//不输入参数的打开
out.println("<script>window.open</scirpt>");
}
public openWin(int height,int width){//输入参数的大开
out.println("<script>window.open"+height+width+"</scirpt>");//

}
chongqing_ljg 2003-06-17
  • 打赏
  • 举报
回复
在JAVABEAN中生成纯的JAVASCRIPT试试
gwsr 2003-06-17
  • 打赏
  • 举报
回复
谢谢!
我先打CS去了:)下午再聊
whatwhynot 2003-06-17
  • 打赏
  • 举报
回复
不会吧,这么麻烦??我现在没有思路,等我想到了一定帮你!!!
祝你好运
gwsr 2003-06-17
  • 打赏
  • 举报
回复
to whatwhynot(努力努力!) 首先对您表示感谢!
用js取点和进行window.open操作,我是会做的。
我想实现的功能是用户在Form里的image图上点击,执行自己定义javascript函数:DealWith(),如果得到点击的坐标和数据库中所有记录中的点相差10个单位以内,则执行打开另一个页面的操作。
用户点击时我需要得到他点的坐标值,这个用jsp实现,(如果用Editplus打开,第60行即是)
String tmpx=request.getParameter("pic.x");
String tmpy=request.getParameter("pic.y");//image的name是pic
确实已经得到了正确的坐标x,y,想把它到送给javascript中处理。
现在的问题是DealWith()函数得到的总是用户上次点击的坐标值,比如第一次点的是(10,10),可是再次点时程序得到的才是(10,10)。
出错的原因是不是因为JavaScript是在客户端执行的,即网页一开就取x,y了,而jsp是在服务器端运行的,取到的x,y只能给下次js调时用。
全部页面程序为:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page language="java"%>
<%@ page import="java.sql.*, java.util.*" %>
<html>
<head>
<title>会宁县</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="../../ydjz.files/style.css" rel=stylesheet>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<jsp:include page="sunmin.jsp"/>
<jsp:useBean id="GetXY" scope="session" class="chinamobile.getXY" />

<% //连接数据库,得到坐标值,在本地判断

String xsmap=request.getParameter("map");
int totoal=0;
int X[]=new int[15]; //大小具体有每个市区的基站数目来定
int Y[]=new int [15];
String id_tmp[]=new String[15]; //15有问题!
int times=-1;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@127.0.0.1:1521:YDJZ";

String user="GUANWEI";
String password="editsr";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select JZBH,x,y from BYDATA";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next() )
{
X[totoal]=rs.getInt(2);
Y[totoal]=rs.getInt(3);
id_tmp[totoal]=rs.getString(1);
totoal++;
}

rs.close();
stmt.close();
conn.close();
}catch (Exception e)
{System.out.print(e);
}
%>


<%
int x,y;
String tmpx=request.getParameter("pic.x");
String tmpy=request.getParameter("pic.y");
if (tmpx != null && tmpy != null){
x=Integer.parseInt(tmpx);
y=Integer.parseInt(tmpy);
}
else
{
x=0;
y=0;
}
%>
<Script language="JavaScript">
alert(<%=tmpx%>);
alert(<%=tmpy%>);
</Script>
<form name="form1" method="post" action="">
<input type="image" border="0" alt="在相应的基站图表上点击即可对其查看,编辑" src="/jsp/drawpic?citymap=<%=xsmap%>&XSBH=huining" name="pic" onclick="DealWith()">

tmpx=<%=x%>,<%=y%>
</form>

<Script language="JavaScript">
function DealWith()
{
alert(<%=totoal%>);
alert(<%=tmpx%>);
alert(<%=tmpy%>);
//先判断点击点所在区域,然后在做相应的操作

if (parent.leftFrame.form1.fun.value=="new")//如果是新建,则不需要判断点击点的坐标值
window.open ('../../new.jsp?x1=<%=x%>&y1=<%=y%>&city=huining', 'newwindow', 'height=385, width=570, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no')

//如果当前数据库没有记录,则不需要判断.
//问题就在这个x1=<%=x%>&y1=<%=y%>,得到的总是上一次点击的坐标。
<%

String jzid=null;

while (totoal-->0)
{
if ((x<X[totoal]+10)&&(x>X[totoal]-10)&&(y<Y[totoal]+10)&&(y>Y[totoal]-10))
jzid=id_tmp[totoal];
}

if (jzid==null)
{
%>
return false;
<%
}
%>

if (parent.leftFrame.form1.fun.value=="liulan")
{
window.open ('../../show.jsp?id=<%=jzid%>', 'newwindow', 'height=385, width=570, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no')
}

if (parent.leftFrame.form1.fun.value=="edit")
{
window.open ('../../edit.jsp?id=<%=jzid%>', 'newwindow', '100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no')
}

}
</Script>
</body>
</html>
----------------------------------------------------
所以我提出本帖的问题:是不是可以全部采用jsp来做,这样就不会出现我的问题了。
感谢各位参与,结帐时人人有分!
whatwhynot 2003-06-17
  • 打赏
  • 举报
回复
要坐标干什么亚????
反正我就用我给你的方法完全实现了你说的功能
我不明白你的意思
wafer_w 2003-06-17
  • 打赏
  • 举报
回复
jsp程序要得到什么坐标值,为什么不用javascript来得到,即全用JAVASCRIPT来做?
remanwang 2003-06-17
  • 打赏
  • 举报
回复
不懂,楼主的思想混乱
whatwhynot 2003-06-17
  • 打赏
  • 举报
回复
所以我感决楼主你的问题用我得这个完全应该可以解决吧(不知道是不是我理解错了),控制弹出窗口的大小在function pop(pageurl)里控制一下就可以!
你的那个x、y是干什么的呀?有用吗?
whatwhynot 2003-06-17
  • 打赏
  • 举报
回复
楼主,我真的不明白你的意思,你到底要干什么?你不就是想实现window.open吗??
为给你的代码完全好使,我们的程序正在使用这个!!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<script LANUGAGE="JavaScript">
<!--
function pop(pageurl) {
var
popwin=window.open(pageurl,"popWin","scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=yes,width=580,height=400");
return false;
}
//-->
</script>
<html>
<head>
</head>

<a href="<%=request.getContextPath()%>/xxx.jsp" onClick=" return pop(this.href);"><img src="96818/images/send.gif" width="20" height="12" border="0"></a>

</html>

大致就是这样了,实现的是一个图片型的按钮,点击就会弹出xxx.jsp窗口!
gwsr 2003-06-17
  • 打赏
  • 举报
回复
teva(用正确的理论引导人) 谈的正是本问题的关键
现在我认为这是B/S程序的特点吧,没办法的事:(
同意sunni(死猪)(只有她,我确定) ,哎!那么我上面提出取点的这个问题真的不能解决了吗?
gwsr 2003-06-17
  • 打赏
  • 举报
回复
gks_cn(981530) 你的办法看来不错,后生成js代码,我试试
gwsr 2003-06-16
  • 打赏
  • 举报
回复
UP,UP,UP,UP
解决再送100分!
teva 2003-06-16
  • 打赏
  • 举报
回复
js和jsp有没有什么仇,本来就该一起用的。这里面就应该了解清楚一个概念了。
服务器程序和客户程序是怎么交互的,调用的先后顺序如何。
加载更多回复(18)

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧