2012-11-26 79 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

當然,現在正在編輯它。 –