现在做东西,需要在一个普通静态页面中加短代码,但是又不让使用者感觉到,使其感觉就像普通点击就跳转的样子。我的框架是struct,hibernate,
我是这样实现的。
test.jsp:
<tr>
<td><a href="#" onclick="gotoLanguage(1)" >中文</a>|<a href="#" onclick="gotoLanguage(2)" target="_parent">英文</a></td>
</tr>
js:
function gotoLanguage(_LID)
{ thisForm = document.testForm;
window.location.href="/nanbo/language/en_language_index_home.jsp?_LID="+_LID+"&webUrl="+document.location;}en_language_index_home.jsp:<%@ page contentType="text/html; charset=utf-8"%><%@ page import="org.caexpo.nanbo.model.TLanguage,java.util.*,java.lang.*;" %><%
request.getSession().removeAttribute("_Language");String _lid =request.getParameter("_LID");
String webUrl =request.getParameter("webUrl");
TLanguage _language = new TLanguage();if(_lid!=null) {
if(_lid.equals("1")) {
_language.setLanguageid(new Long(1));
_language.setLanguagename("中文");
}
if(_lid.equals("2")) {
_language.setLanguageid(new Long(2));
_language.setLanguagename("英文");
}
}request.getSession().setAttribute("_Language",_language);
response.sendRedirect(strwebUrl);
return; }
%>这样就有问题了。点击中文是正常跳转的。但是英文就毫无反应,就有冲突了,因为多了个target="_parent"。可我这个2个链接最终是要放到top.html里面的,是框架的头部如不不加这个,就只有头部刷了,其他的还是不变,没有意义,必须要加。所以问问,到底哪里不合理,因该怎么改。或者有什么好方式,可以实现我在2个静态页面中加段代码。我的目标就是2个页面切换的时候 能把session换下,并且传个点击时候的地址,因为到时是要做到冲哪里来,那里去,只不过页面换成了另一个语言版本。大家放心说吧,分布够 另外开贴,必结。
我是这样实现的。
test.jsp:
<tr>
<td><a href="#" onclick="gotoLanguage(1)" >中文</a>|<a href="#" onclick="gotoLanguage(2)" target="_parent">英文</a></td>
</tr>
js:
function gotoLanguage(_LID)
{ thisForm = document.testForm;
window.location.href="/nanbo/language/en_language_index_home.jsp?_LID="+_LID+"&webUrl="+document.location;}en_language_index_home.jsp:<%@ page contentType="text/html; charset=utf-8"%><%@ page import="org.caexpo.nanbo.model.TLanguage,java.util.*,java.lang.*;" %><%
request.getSession().removeAttribute("_Language");String _lid =request.getParameter("_LID");
String webUrl =request.getParameter("webUrl");
TLanguage _language = new TLanguage();if(_lid!=null) {
if(_lid.equals("1")) {
_language.setLanguageid(new Long(1));
_language.setLanguagename("中文");
}
if(_lid.equals("2")) {
_language.setLanguageid(new Long(2));
_language.setLanguagename("英文");
}
}request.getSession().setAttribute("_Language",_language);
response.sendRedirect(strwebUrl);
return; }
%>这样就有问题了。点击中文是正常跳转的。但是英文就毫无反应,就有冲突了,因为多了个target="_parent"。可我这个2个链接最终是要放到top.html里面的,是框架的头部如不不加这个,就只有头部刷了,其他的还是不变,没有意义,必须要加。所以问问,到底哪里不合理,因该怎么改。或者有什么好方式,可以实现我在2个静态页面中加段代码。我的目标就是2个页面切换的时候 能把session换下,并且传个点击时候的地址,因为到时是要做到冲哪里来,那里去,只不过页面换成了另一个语言版本。大家放心说吧,分布够 另外开贴,必结。
解决方案 »
- Unable to compile class for JSP
- 关于SSH框架调用ORACLE存储过程的问题 急在线等
- (大家帮个忙呀)如何将excel文件中的数据保存到数据库中
- 在编译时总是提示“tbSelYear”、“tbSelMonth”未定义
- spring中的action配置scope=‘session’时,DWR失效,如何解决?
- Tomcat 与 SQL Server集群设置
- 请教序列号的问题!在线等待
- JavaScript问题
- 请问怎样执行读出的存在数据库里的jsp代码,请帮帮我把!!
- 求实现PDF预览的思路
- JSP页面上传文件,在线等
- <iframe src="...">中取地址的问题
只对href="#"有作用,要不gotoLanguage里面改成:
window.open(url,"_parent")试试
?
怎么用 提示下。我现在的中英是代码复用的。只不过根据session或者传入的lid来判断进去的页面是那个版本。
关键我们的需求比较BT,要求一个user可以进入各个语言版本,并且能随时切换各个版本。所以我通过这个方式将信息放入session,并且写个了baseAction来控制语言版本的相关跳转。
这样缺少了"&webUrl="+document.location,因为我要做到任意跳转,并且判断是否登陆,登陆后跳回点击前的页面,所以我要传个url过去。我是用"&webUrl="+document.location传的。
String _lid =request.getParameter("_LID");String webUrl =request.getHeader("Refer");
request.getHeader("Referer")
-----------------------------------------------
这些我可以在代码加,但是我不需要在页面里面set?Header难道会自己得到我点击中英文时候的url?
中取得的地址,不是浏览器中的,而且我那个top.html这个的地址。导致点击后,只显示top.html这个页面了。无法回到我那些框架中的.do或.html页面
<a href="#" onclick="gotoLanguage(1)" >中文</a>|<a href="#" onclick="gotoLanguage(2)">英文</a>
<script language="javascript">
function gotoLanguage(_LID)
{
thisForm = document.testForm;
if(_LID==1){
window.location.href="/nanbo/language/en_language_index_home.jsp?_LID="+_LID+"&webUrl="+document.location;
}else{
parent.window.location.href="/nanbo/language/en_language_index_home.jsp?_LID="+_LID+"&webUrl="+document.location;
}
}
</script>
<script language="javascript">
function gotoLanguage(_LID)
{
thisForm = document.testForm;
var tmpurl = "nanbo/language/en_language_index_home.jsp?_LID=" + _LID + "&webUrl=";
if(_LID==1){
location.href = tmpurl + location.href;
}else{
parent.location.href = tmpurl + parent.location.href;
}
}
</script>
thisForm = document.testForm;
var tmpurl = "nanbo/language/en_language_index_home.jsp?_LID=" + _LID + "&webUrl=";
parent.location.href = tmpurl + parent.location.href;实际因该是这样的,中英文跳转一样的。我前面分开写,只是方便对照。跳转是没有问题了。现在还是取地址的问题,我这里parent.location.href报错。
我用 alert(parent.location.href);都没有提示,到这里就跳出了 ,是不是写法有误?
parent.window.location
parent.window.location.href
parent.window.document.location.href
parent.window.document.URL