2012-11-26 111 views
0

我有一个名为parent.jsp的父级jsp。这产生了一个名为iframe1的iframe,它依次构造一个名为iframe2的iframe。如何将参数从iframe传递给iframe?

从parent.jsp:

String myNumber=request.getParameter("myNumber"); 

现在我需要再次把它传递给iframe2.jsp:

<iframe id="iframe1" style="display:none;" height="430" 
width="675" 
src="iframe1.jsp?myNumber=<%= bean.getMyNumber() %>" > 

在这里,我用得到mynumber的在iframe1.jsp。为此,我调用一个名为createSecondIframe()的javascript方法。这里我使用这样的:

createSecondIframe(myNumber) 
{ 
ifrm.setAttribute("src", "iframe2.jsp?myNO=myNumber"); 
} 

这里iframe2是越来越所有的视觉内容创建,但mynumber的是没有得到过去了,当我这样做:

System.out.println("MyNo::"+request.getParameter("myNO")); 

我得到的,MyNO为空。

编辑:

根据布鲁诺的建议,这个函数调用createSecondIframe():

function iframe1(myNumber) 
{ 
var parentDynamicDiv = window.parent.document.getElementById('overlay1'); 
var iframe = window.parent.document.getElementById('container1'); 

iframe.style.display = 'none'; 
parentDynamicDiv.style.display = 'none'; 
createSecondIframe(myNumber); 
} 

我要去的地方错了吗?请帮助。

+0

尝试使用AJAX,而不是借助iframe玩。它会导致比预期更多的问题,例如浏览器域名检查。 – Raptor

+0

是的,我不能完全做到这一点,因为要求特定于要求首先使用iframe的要点。 –

+0

而不是在JSP中完成它,在jQuery的帮助下在JavaScript中完成。只需调用父JavaScript函数来更改第二个iframe的src URL。 – Raptor

回答

0

浏览器对于存在于servlet上下文中的myNumber一无所知。你必须在客户端代码中的某个地方明确地定义它。

<script type="text/javascript"> 
    var myNumber = <%= myNumber %>; 
</script> 

createSecondIframe(num) 
{ 
ifrm.setAttribute("src", "iframe2.jsp?myNO="+ num); 
} 

,过一会儿给createSecondIframemyNumber

createSecondIframe(myNumber) 
+0

好的,首先,我们不能在iframe1.jsp中真正使用bean,因为我已经在父项中使用它了。jsp并将该值作为参数传递,并将其捕获到iframe1.jsp中,这非常有效。在为第二个iframe传递第二个url的变量之后,当我尝试获取它时,我没有收到它。是的,我只通过方法参数传递变量,然后将其发送为:“iframe2.jsp?myNO =”+ num。尽管如此,我却变得空虚。只是可以弄清楚,出了什么问题。 –

+0

好吧,试着检查'num'是否有效。 例如将'alert(num);'追加到'createSecondIframe'正文 –

+0

好吧,我会先试一下。 –

0

您未使用myNO变量,而是将myNO指定为字符串。试试这个

createSecondIframe(myNumber) 
{ 
    ifrm.setAttribute("src", "iframe2.jsp?myNO=" + myNumber); 
} 
+0

没有,但没有变化,仍然变为空 –

+0

任何机会,你可以告诉我们调用'createSecondIframe'函数的代码。 – Bruno

+0

当然,现在正在编辑它。 –