jsp2:
<%@ page language="java" contentType="text/html;charset=GBK" errorPage="ErrorPage.jsp"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head><body>
<form name="c" method="post" action="test.jsp">
<label>
<%
String avalue = request.getParameter("b");
if (avalue!=null){
out.println(avalue);
}
%>
</label>
<input type="hidden" name="b">
</form>
</body>
</html>如果我把 testwin() 这个函数中的alert()去掉,那么10次中会有3-5次的找不到对象,如果加上,每次都不会出现,大家能告诉我错在哪里么?
<%@ page language="java" contentType="text/html;charset=GBK" errorPage="ErrorPage.jsp"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head><body>
<form name="c" method="post" action="test.jsp">
<label>
<%
String avalue = request.getParameter("b");
if (avalue!=null){
out.println(avalue);
}
%>
</label>
<input type="hidden" name="b">
</form>
</body>
</html>如果我把 testwin() 这个函数中的alert()去掉,那么10次中会有3-5次的找不到对象,如果加上,每次都不会出现,大家能告诉我错在哪里么?
解决方案 »
- JS怎么在页面加载完之后在指定位置插入.swf文件
- 请教在jquery中如何写自定义的format方法
- extJs 3.0获取不到值问题
- 关于extjs访问json的问题
- 请高人指教为什么jquery语句老是提示错误呢?老是出现消息: 'null' 为空或不是对象。单独拿出来放到一个页面的话就不会出错。
- DOM定位
- ie下连续点击标题菜单会报一个“参数错误”的提示 ff下没有问题~
- 一个向左无缝滚动的图片 滚动一段时间为什么自动停止了?
- 检查字符串是有大写字母 小写字母跟数字组合的正则表达式
- 求对输入进行识别的一功能函数?急用,只要能用马上结帖。。。。
- 怎样去掉IE关闭窗口前的确认提示?
- 查询时出现的简单问题,请高手帮助(急)
var a = window.open("test.jsp","aa");//返回新打开的窗口
alert("a:"+a);//返回的是一个对象
//alert("a.c"+a.document.c);也是一个对象,新窗口中(form)
//alert("a.c.b"+a.document.c.b);也是一个对象,新窗口中(form中的text)
//for (var i=0;i<100;i++){
//}
a.document.c.b.value = "11";
a.document.c.submit();//新窗口中form提交
}
</script>
你可以将jsp1中要进行的动作放到jsp2中去执行啊!
....
还是劝你将那个提交表单的动作放到jsp2中去。
何苦呢?为了一个完全可以解决的方法纠缠?
佩服你的精神,但是……
sorry,每见过这种情况。
如果是,你一辈子都得不到他的值alert("a:"+a);
后就要提交jsp1 1.jsp open 2.jsp
jsp2 2.jsp action="test.jsp"
test.jsp 中 request.getParameter("b");
得到值 11
var a=null;
function testwin(){
a = window.open("test.jsp","aa");
submit1();
}
else
{
setTimeout("submit1();",50);
}
}
function submit1(){
if(a.document.readyState=='complete'){
a.document.c.b.value = "11";
a.document.c.submit();
}
}
</script>
var a=null;
function testwin(){
a = window.open("test.jsp","aa");
a.document.onload=new Function("submit1()")
}function submit1(){
if(a.document.readyState=='complete'){
a.document.c.b.value = "11";
a.document.c.submit();
}
}
<%@ page language="java" contentType="text/html;charset=GBK" errorPage="ErrorPage.jsp"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<script>
function testwin(){
alert("a:"+a);
}
</script>
<body>
<form>
<input type="button" name="test" value="test" onclick="testwin();">
</form>
</body>
</html>
这个问题不是JSP的问题,
而是IE的问题,IE6,10次中10次都没问题,但是WIN2000的IE,
98的好象还好一些,10中,我是6次都找不到这个函数,其实,就写一个上面的样子,有的时候,也是找不到,后来发现了,一个IE的BUG,这样写:<input type="button" name="test" value="test" onclick="testwin('aa');"><script>
function testwin(aa){
alert("a:"+a);
}
</script>10次中10次好使,但不知为什么???
我也是每回都小心地加上一个没有用的参数的
有的时候,就没进去那个函数,虽然我的回答,和你的问题,真是一点边都不搭但是,你最好确信,它每次都进到函数里面了,只是进去,你的代码,好象没问题,
其实,我对JSCRIPT也是白痴一个
或者,干脆setTimeout()执行你的函数。
我也是新手,用jsp也才一个星期,但是这个确实还是不难的,反倒是js比较烦,经常会碰到不同版本不同结果的问题,比如用post到一个blank中,ie5.5就有opener而5.0就没有,感觉很无奈阿!总不能教所有的客户都给你升级吧?何况很多客户是啥都不懂的,只好....
昨天我试到比较晚,确实在ie6下是没有问题的,在ie5下的话,如果新打开的窗口没有焦点的话,就会正确执行,如果焦点在新窗口上,无论怎样都是会报undefined错误的,空循环和setTimeout都是没有用的,用onload事件来执行的结果也是一样的。如果是这样的话就比较好办了,在你的jsp2中写一句话:<script>opener.focus()</script>
或者<script>self.blur()</script>
刚才试了下一种新方法,问题解决了,我把方法贴出来大家看下:
test.jsp:
<%@ page language="java" contentType="text/html;charset=GBK" errorPage="ErrorPage.jsp"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<script language="javascript">
function f_close(){
window.opener.document.form1.btext.value = c.b.value;
window.close();
}
</script>
<body>
<form name="c" method="post" action="test.jsp">
<label>
<%
String avalue = request.getParameter("b");
%>
</label>
<input type="text" name="b" value=<%= avalue%>>
<input type="button" name="test" value="close" onclick="f_close();" ></form>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<script language="javascript">
function testwin(aa){
var a = window.open("","aa"); a.document.writeln("<html>");
a.document.writeln("<body>");
a.document.writeln("<form name='c' method='post' action='test.jsp'>");
a.document.writeln("<input type='text' name='b'>");
a.document.writeln("</form>");
a.document.writeln("<script language=javascript>");
a.document.writeln("document.c.b.value='11'");
a.document.write("</");a.document.write("script>");
a.document.writeln("</body>");
a.document.writeln("</html>");
a.document.c.submit();
}
</script>
<body>
<form name="form1">
<input type="text" name="btext"> <input type="button" name="test" value="test" onclick="testwin('aa');">
</form>
</body>
</html>
多谢大家的指教:
fason(阿信) ( )
xinyunyishui(心云意水)
dearmite(我是笨笨!)
1.与其写这么多代码,不按照我说这个法子试试看:
I.jsp1中:
<script>
function testwin(){
var a = window.open("test.jsp","aa");
}
</script>
jsp2中:
<script>
function window.onload(){
c.submit();
window.close();
}
</script>
是不是比你的短很多?
2.其实,不要用window.open打开新窗口,用一个隐藏的iframe来做这个,应该会让客户感觉更好一点,因为大多数人都讨厌弹出的窗口。