我尝试了类似的代码却没有成功。
我在一个A网站的portlet中,iframe了一个B网站的jsp页面,当点击该jsp的某个链接后,我需要将一个参数传送到A网站的某Servlet,可是没有成功。
代码如下:
site A的portlet:
从IFrame中的页面传来的参数:<%=portlet_a_s%>
<br/>
<iframe width="300" height="300" src="
http://siteB:7001/myWeb/B.jsp">
</iframe>
site B的jsp:
<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<html>
<head>
<title>
inner page
</title>
<script type="text/javascript">
var lastScript;
var h=document.getElementsByTagName("head")[0];
function loadScript(url){
var f=document.createElement("script");
var d=new Date().getTime();
f.type="text/javascript";
f.id=d;
f.src=url+'&date='+d;
document.body.appendChild(f);
if(lastScript&&g(lastScript))g(lastScript).parentNode.removeChild(g(lastScript));
lastScript=d;
}
function g(x){
return document.getElementById(x)
}
function onClickMeasureId(id){
var hidden = g("hidden_input");
hidden.value = id;
var url = "
http://siteA:7001/testWeb/portlets/portlet_a/PortletAServlet?id="+id;
loadScript(url);
}
function onResponse(){
alert("response");
};
</script>
</head>
<body>
<a onclick="onClick('参数1')" href="#">参数1</a>
</body>
</html>
siteA的Servlet:
public class PorletAServlet extends HttpServlet
{
public void service(HttpServletRequest request,HttpServletResponse response){
if ( request.getParameter("id") != null ){
String id = request.getParameter("id").toString();
HttpSession session = request.getSession();
session.setAttribute("measure_id",request.getParameter("id") );
try{
response.setContentType("text/javascript");
PrintWriter out = response.getWriter();
out.write("onResponse();");
}
catch(Exception e){}
}
}
}
我执行siteA的portal,在siteA的servlet中加入断点,点击portlet中iframe中的链接,发行servlet并没有得到执行。实在不知道为何不成功。
不知道博主可否提供更加完整的例子?谢谢!