Iframe表单提交数据到窗口URL

Iframe form submit data to Window URL

本文关键字:窗口 URL 数据 表单提交 Iframe      更新时间:2023-09-26

假设我在浏览器(http://localhost:8080/Proj/page)中输入一个URL,我得到一个页面,其中有菜单和iframe。在菜单的点击,我正在做一个ajax请求服务器通过张贴一些数据,并获得一个HTML文档作为响应。我正在使用javascript手动更新HTML文档到iframe。{这背后的原因URL有一个查询参数,我想把它POST到服务器,而不是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>

有一个链接(称为Next)在iframe中使用javascript提交表单

document.getElementById('inboxSearchForm').submit();

问题是当我点击链接下一步.. iframe加载URL内容(http://localhost:8080/Proj/page ie iframe现在存储整个页面ie菜单和iframe,它是递归的..谁能告诉我什么可能是原因…我希望iframe从URL /inbox/search刷新,而不是从浏览器中的URL ..这种行为没有反映在IE面临的问题在mozilla:(

首先,IFrame页面将永远无法联系主页。

建议:不要将Iframe用于此目的。如果你想从其他页面获取一些内容,使用$。加载jquery

但是在你的情况下,我建议你使用div而不是iframe的形式。代码可能看起来一样,只是做了一些小改动。