一、现实情况
1.一个html页面,有一个输入关键字的文本框,当点击按钮时用JS把文本框里面的值传到一个asp.net页面,代码如下:
<SCRIPT language=JavaScript>
function GoUrl()
{
var txtKeyword = document.getElementById("txtKeyword").value;
var obj = document.getElementById("tagOpenWin");
var url = "http://www.aaa.com/bbb.aspx?txtKeyword="+escape(txtKeyword);
obj.href = url;
obj.click();
}
</SCRIPT>
<INPUT id="txtKeyword" name="txtKeyword">
<INPUT id="chaxun" onclick="GoUrl()" type="submit" value="查询" name="chaxun">
<A id="tagOpenWin" target="_blank"></A>
2.asp.net中的cs文件:
protected void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
string keyword = Request.QueryString["txtKeyword"];
Response.Write(keyword );
}
}
二、出现的问题
1.文件刚传到服务时一切正常,用了一段时间后显示keyword 为空
2.再把本地文件上传覆盖服务器上的文件后,就又正常了
三、希望高手帮忙
1.分析原因
2.解决办法
<input id="chaxun" onclick="GoUrl()" checked="0" disabled="0" name="chaxun" readonly="0" type="submit" value="查询" />
这个不要用submit.用button
这应该是执行速度的问题~~什么结果取决于:GoUrl()与submit哪个快。。
如果function GoUrl()
{
var txtKeyword = document.getElementById("txtKeyword").value;
var url = "http://www.aaa.com/bbb.aspx?txtKeyword="+escape(txtKeyword);
window.location.href=url;
}
是不是更好?
看一下新开的查询窗口的URL地址中有没有txtKeyword,或者txtKeyword=等,
或者不用那个link,使用js的window.open试试
问题
1、escape 最好换成encodeURIComponent
2、某些浏览器下链接是不存在click方法的。