[英]Iframe form submit data to Window URL
假設我在瀏覽器中輸入一個URL(http:// localhost:8080 / Proj / page),然后得到一個包含菜單和iframe的頁面。 單擊菜單后,我通過發布一些數據並獲取HTML文檔作為響應來向服務器發出ajax請求。 我正在使用javascript手動將HTML文檔更新為iframe。 {原因背后,URL有一個查詢參數,我想將其發布到服務器而不是GET,因此我沒有更改iframe src}
例如:
<a href="#" onClick="frameopen('helloWOrld.html?a=bc&d=ef')">menu</a>;
function frameopen(url) {
var dataToSend = getQueryParameterFrmUrl(url);//got data in form of Object
var urlWithoutQUeryParam = getUrlWithoutQueryParam(url);//got url without query parameter
positionThrobber("section16_contentframe");//add the throbber
//perform POST using ajax
$.ajax({
url: urlWithoutQUeryParam,
data: dataToSend,
type: 'POST',
success: function (serverResponse) {
//server response came write this to iframe
removeThrobber();
var ifrm = document.getElementById('contentframe');
ifrm = (ifrm.contentWindow) ? ifrm.contentWindow : (ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument;
ifrm.document.open();
ifrm.document.write(serverResponse);//server response written
ifrm.document.close();
},
error: function (jqXHR, textStatus, errorThrown) {
removeThrobber();
alert("Ajax Request Failed!Text Status:" + textStatus + ",errorThrown:" + errorThrown);
}
});
}
現在,從服務器響應中填充了iframe,它包含一個表單。
<iframe src="">
<html><body>
<form name="inboxSearchForm" id="inboxSearchForm" commandName="userQueueFilter" action="${pageContext.request.contextPath}/inbox/search" method="post">
<a href="#" id="nextPage" onclick="pageJump(document.getElementById('pageNum').value,'up') ">Next ></a>
</form>
</body></html>
</iframe>
iframe中有一個鏈接(稱為Next),該鏈接使用javascript提交表單
document.getElementById('inboxSearchForm').submit();
問題是當我單擊鏈接Next..iframe加載了URL內容(http://localhost:8080/Proj/page
即iframe現在存儲了整個頁面,即菜單和iframe,並且它是遞歸的..誰能告訴我可能是什么原因。.我希望從URL /inbox/search
而不是從瀏覽器中的URL刷新iframe。.這種行為沒有反映在mozilla的IE面臨的問題中::(
首先,iframe頁面將永遠無法聯系主頁。
建議:請勿為此目的使用iframe。 如果您想從其他頁面獲取一些內容,請使用$ .load的jquery
但是在您的情況下,我建議您使用div
而不是iframe來制作表單。 稍作更改后,代碼看起來可能相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.