如何将参数从iframe传递到iframe?

时间:2012-11-26 08:22:46

标签: javascript jsp iframe

我有一个名为parent.jsp的父jsp。这会生成一个名为iframe1的iframe,后者会构成一个名为iframe2的iframe。

来自parent.jsp:

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

在这里,我使用:

获取iframe1.jsp中的mynumber
String myNumber=request.getParameter("myNumber");

现在我需要再次传递给iframe2.jsp。为此我调用了一个名为:createSecondIframe()的javascript方法。我在这里使用它:

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

这里iframe2是用所有可视内容创建的,但是当我这样做时,myNumber没有被传递:

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

我知道,MyNO为空。

编辑:

根据Bruno的建议,这个函数调用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);
}

我哪里错了?请帮助。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

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

稍后使用createSecondIframe

致电myNumber
createSecondIframe(myNumber)